【问题标题】:Accepting ASP.NET Forms Authentication cookies in an OWIN-hosted SignalR implementation?在 OWIN 托管的 SignalR 实现中接受 ASP.NET 表单身份验证 cookie?
【发布时间】:2013-06-29 14:10:37
【问题描述】:

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

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

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

所以,问题是:如何连接到 SignalR 服务器管道以捕获 .ASPXAUTH cookie 并在调用集线器之前使用它来设置当前主体?

如果有帮助,我可以加入一些 Nancy。

【问题讨论】:

  • 您找到解决问题的方法了吗?我正在尝试相同的方法(尽管我的 MVC 应用程序和我的自托管 SignalR 服务位于不同的端口上)。

标签: forms-authentication signalr owin


【解决方案1】:

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

Context.User.Identity.IsAuthenticated

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

【讨论】:

  • 身份验证发生在 MVC 应用程序中,而不是在服务中。 .ASPXAUTH cookie 可以在两者中使用,但我如何将其连接到 SignalR 或 OWIN 管道中?
  • 罗杰,我知道你在寻找什么,但实际上从未尝试过这样做。对于连接类,有一个名为“CookieContainer”的属性。这可以在Microsoft.AspNet.SignalR.Client.Connection 中找到,您可以在其中获取/设置它。在其中,您可以利用此answer 中的代码来尝试添加它。
猜你喜欢
  • 2015-03-13
  • 1970-01-01
  • 2013-07-01
  • 2015-10-09
  • 2012-06-10
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多