【问题标题】:Claims Identity in SignalR 2SignalR 2 中的声明身份
【发布时间】:2014-09-15 03:57:16
【问题描述】:

我正在尝试从使用 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 解析/解密的唯一方法吗?如果有,怎么做?

【问题讨论】:

  • 您是否修改了 web.config 以便您的 auth 类捕获事件?
  • 不,你能解释一下吗?

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


【解决方案1】:

原来问题与Startup 类中处理程序注册的顺序有关。

我在调用app.UseCookieAuthentication(...) 之前调用了app.MapSignalR(),但只需切换顺序,一切都开始工作了。

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

【讨论】:

  • 你太棒了!我遇到了同样的问题,问题的原因并不明显,所以谢谢!
猜你喜欢
  • 2015-06-27
  • 2016-03-01
  • 2016-07-31
  • 2021-08-26
  • 1970-01-01
  • 2016-02-19
  • 2014-02-28
  • 1970-01-01
  • 2012-02-25
相关资源
最近更新 更多