我有一个基于mvc3的web服务,它使用Ninject来管理它的动作过滤器,这一切都很好。不过,现在我必须将SignalR集线器纳入混合,并且如果可能的话,理想情况下希望在这些新集线器上重新使用现有的动作过滤器。Ninject with ActionFilters and SignalR
其中一个最重要的过滤器是CookieAuthentication过滤器,它基本上检查给定的请求是否包含正确的身份验证Cookie,如果该cookie不存在或无效,则会将filtercontext.result对象设置为自定义UnauthorisedResult对象。所以在这个例子中,你可以使用这个功能,因为SignalR据我所知不知道行动的结果,所以不知道它是否会自动取消请求等。
我试过Google搜索,但无法找到关于该主题的很多信息,我假设你不能混淆它们,因为这两个框架只共享底层ASP框架而不是MVC框架。
啊刚才的那个人,我在赶时间,所以我应该提到我已经签出的文档,确保枢纽等,然而这一切似乎使用默认的ASP.NET授权,我希望避免这种情况,并且只是有办法检查cookie与请求的数据库,而这些功能在我使用的框架内已经存在,并且都基于HttpRequest对象。然而,AuthoriseAttribute似乎对用户有效,而不是http请求,所以我应该在那里获取'HttpContext.Current.Request'并忽略用户对象? – Grofit
那么,它使用“主机”认证。在这种情况下,主机是ASP.NET,在ASP.NET中,您可以挂接一个IHttpModule的AuthorizeRequest并将IPrincipal设置为上下文无论您满意。 – davidfowl