SignalR Context.User.Name 返回空

Posted

技术标签:

【中文标题】SignalR Context.User.Name 返回空【英文标题】:SignalR Context.User.Name returns empty 【发布时间】:2016-04-15 00:57:54 【问题描述】:

每当我尝试从Hub 访问Context.User.Identity 时,用户详细信息始终为空。

注意: Context.User 确实返回 null,属性只是空的:

我查看了许多与此类似的问题,但他们似乎都在问为什么Context.Usernull,答案是将app.MapSignalR(); 移到@987654328 下方@,正如我所做的那样:

    public void Configuration(IAppBuilder app)
    
        ConfigureAuth(app);
        app.MapSignalR();
    

HttpContext.Current.User 也返回空值,但同样只能从 Hub 中返回。如果我从任何其他Controller 调用它,我会得到当前登录的用户详细信息。

最后,我还发现 HttpContext.Current.User.IsAuthenticatedfalse 令人不安,但用户仍然可以访问该功能。 (请参阅上面屏幕截图中的Authorize 属性。)

是否有人能够解释为什么我的用户是空的?

非常感谢所有帮助。

【问题讨论】:

我建议您检查声明 - 用户名可以坐在那里。 感谢您的建议,我会试一试。 (我认为这更像是一种变通方法而不是修复方法!) 声明也是空的。他们计算价值,但价值的实际数据是空的。 【参考方案1】:

将匿名设置为 false 并将 windows 身份验证设置为 true

【讨论】:

以上是关于SignalR Context.User.Name 返回空的主要内容,如果未能解决你的问题,请参考以下文章

SignalR.Owin 与 SignalR.SelfHost

SignalR全套系列之在.Net6中实现SignalR分组通信

SignalR系列教程:SignalR快速入门

SignalR学习系列4. SignalR广播程序

SignalR入门之多平台SignalR服务端

SignalR学习系列3. SignalR实时高刷新率程序