我正在尝试将
在我的调试中,我发现 有时候,我的 Hub 构造函数被调用并带有我的 OWIN 中间件。当出现这种情况时,
其他时候,调用似乎来自线程池。在这些实例中,
还有什么其他方法可以使我以静态方式获取主体,以便我可以将其注入到 Hub 构造函数中?
IPrincipal
注入到我的 SignalR Hub 构造函数中。
我已经看到并尝试了 "Selective IPrincipal Injection via StructureMap with SignalR" 中的解决方案,但不幸的是这似乎对于 SignalR 2.x 不起作用。在我的调试中,我发现 有时候,我的 Hub 构造函数被调用并带有我的 OWIN 中间件。当出现这种情况时,
Thread.CurrentPrincipal
是正确的值。此外(令人惊讶的是),HttpContext.Current
也不为 null。我以为在 SignalR 中它总是 null,虽然我没有尝试使用它,但我只是观察。好像这些可行的调用来自调用堆栈中的管道。其他时候,调用似乎来自线程池。在这些实例中,
Thread.CurrentPrincipal
是一个 GenericPrincipal
,HttpContext.Current
为 null(再次只是观察),而且我似乎无法以静态方式获取主体。然而,在 Hub 内部,this.Context.User
属性确实具有正确的主体。还有什么其他方法可以使我以静态方式获取主体,以便我可以将其注入到 Hub 构造函数中?