Asp.net 信号用户登录

Asp.net 信号用户登录,asp.net,asp.net-mvc,authentication,signalr,signalr-hub,Asp.net,Asp.net Mvc,Authentication,Signalr,Signalr Hub,我有一个SignalrHub(聊天应用程序),它由ASP.NETMVC(或OWIN)托管 我需要一个通用的cookie身份验证。(要么在中心本身登录,要么最好先通过托管的MVC/OWIN应用程序登录) 这项任务听起来很琐碎,但我无法完成 网上有很多关于基于已登录用户(包含在请求cookie中)实际授权访问的信息。但关于用户实际登录并将信息放入cookie(尤其是在托管应用程序中登录,而不是在中心本身)的信息很少 此外,一些带有示例的文档已经不起作用了(可能是由于SignalR的最新版本中发生了一

我有一个SignalrHub(聊天应用程序),它由ASP.NETMVC(或OWIN)托管

我需要一个通用的cookie身份验证。(要么在中心本身登录,要么最好先通过托管的MVC/OWIN应用程序登录

这项任务听起来很琐碎,但我无法完成

网上有很多关于基于已登录用户(包含在请求cookie中)实际授权访问的信息。但关于用户实际登录并将信息放入cookie(尤其是在托管应用程序中登录,而不是在中心本身)的信息很少

此外,一些带有示例的文档已经不起作用了(可能是由于SignalR的最新版本中发生了一些更改)

例如,
FormsAuthentication.SetAuthCookie
抛出异常,而且
HubCallerContext
中甚至没有任何
Response
属性可用于手动写入授权Cookie


我可以假设(甚至可以理解)一般来说,在响应中写入某些内容可能没有意义,因为信号器连接不仅仅是一个常见的“回发逻辑”,但是,仍然无法找到身份验证(登录)必须工作的方式。

信号器
不提供任何身份验证方法。相反,它使用
Owin
中间件提供的身份验证

如果您使用的是
ASP.NET
,您应该使用
SignInManager
,以与普通ASP应用程序相同的方式登录用户。然后进行
信号连接<代码>信号器
将尊重这一点,并且在您的中心上下文中,您将能够访问已登录的用户,并且您将能够使用授权过滤器

请记住,登录必须在连接即将开始之前进行

您提供的链接非常好,适用于
信号机的v2