SignalR 2中的声明身份

时间:2014-09-15 03:57:16

标签: asp.net-mvc-5 signalr claims-based-identity

我试图从使用SignalR的ASP.NET MVC5获取基于声明的授权,并且我已经按照本教程进行了操作:

http://www.asp.net/signalr/overview/signalr-20/security/hub-authorization

我尝试了集线器上的vanilla Authorize属性以及他们提供的自定义AuthorizeClaimsAttribute类作为示例,但它们似乎都不起作用。

在后一种情况下,IPrincipal user参数将为null。事实上,request.GetOwinContext()扩展方法返回的整个上下文似乎是未初始化的,所以试图挖掘对象以获得它"免费"不会工作。

但是,我确实在请求标题中看到了这些cookie:

  • .AspNet.ApplicationCookie
  • __ RequestVerificationToken
  • ASP.NET_SessionId

所有这些都包含Microsoft.AspNet.SignalR.Cookie

的实例

唯一的方法是让这个工作来做我自己的cookie解析/解密吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:4)

事实证明问题与Startup类中的处理程序注册顺序有关。

我在致电app.MapSignalR()之前打电话给app.UseCookieAuthentication(...),但只是通过切换订单,一切都开始了。

更重要的是,它适用于直接应用于集线器的普通Microsoft.AspNet.SignalR.AuthorizeAttribute,无需自定义属性。