操作筛选器属性无法在集线器类中正常工作



在 asp.net Web API 中,我正在使用操作过滤器属性,我覆盖了 OnActionExecutingOnActionExecuted在标头中验证从客户端发送的令牌,当通过任何控制器添加该属性时,我可以在将请求传递给控制器中的函数之前拦截请求,直到现在一切都运行良好,但如果我在集线器类上添加与调试时相同的属性,则不正确 i可以看到集线器上的方法首先被执行,然后OnActionExecutingOnActionExecuted。如何解决这个问题。

 [OurAuthorization]
    public class NotificationHub : Hub 
    {
        private AccPlusEntities1 db = new AccPlusEntities1();
        public void TrnAddedNotfication(string GroupName)
        {
            Clients.OthersInGroup(GroupName).AddedNotfication();
        }
        public void TrnDeletedNotfication(string GroupName)
        {
            Clients.OthersInGroup(GroupName).DeletedNotfication();
        }
        public void JoinGroup(string AccName)
        {
            var x = BaseController.CurrentUser.AccId;
            Groups.Add(Context.ConnectionId, AccName);
        }
        public void LeaveGroup(string AccName)
        {
            Groups.Remove(Context.ConnectionId, AccName);
        }
        public void Lock(int TrnId)
        {
        }
    }  

操作筛选器属性不适用于你发现的 SignalR 中心。幸运的是,SignalR 确实提供了它自己的 AuthorizeAttribute,它实现了相同的目的。

ActionFilterAttribute 一样,您可以对 SignalR 的 AuthorizeAttribute 进行子类化并重写 UserAuthorized 方法。

最新更新