我试图授权用户使用 SignalR 中的某些连接,我的问题是使用 WebSockets 作为传输我无法设置 HttpContext.Current.User 而不得到异常。授权对象也需要可以从控制器访问,并且身份验证是在整个 web-api 部分中自定义的,具有 IFilter 实现。
我必须在这里遗漏一些东西,在我们升级到支持 websockets 的 2012 服务器之前,我们只使用了 HttpContext.Current.User 并且一切正常,通过 SignalR 查看替代方案,[AuthorizeAttribute] 有一个实现,但仅适用于集线器(和我不确定在使用 websockets 时更改 HttpContext.Current.User 也不会引发异常)。
在此先感谢,图腾。