在OWIN托管的SignalR实现中接受ASP.NET Forms身份验证cookie?

Rog*_*mbe 6 forms-authentication signalr owin

我有一个使用OWIN的自托管SignalR实例.我想实施授权.我的用户已经使用Forms身份验证登录了ASP.NET MVC应用程序.

由于这两个应用程序将在同一个URL上提供,因此cookie将在两者之间共享.如何在自托管SignalR应用程序中接受表单身份验证cookie?

澄清:我说的是浏览器使用相同的凭据访问自托管的SignalR集线器,这些凭据用于登录单独的(但相关的,并安装在同一主机上)IIS应用程序.

因此,问题是:我如何挂钩到SignalR服务器管道以捕获.ASPXAUTHcookie并在调用集线器之前使用它来设置当前主体?

如果它有帮助,我可以把一些南希投入到混合中.

Sea*_*ice 0

如果您的用户已通过身份验证并登录,您可以在 SignalR 中心内检查以下内容:

Context.User.Identity.IsAuthenticated
Run Code Online (Sandbox Code Playgroud)

确保该属性设置为 true。您可以将此检查放在集线器的构造函数中以阻止/删除它们的连接。如果为 false,您可以将它们重定向到另一个页面。