【发布时间】:2013-06-28 22:37:50
【问题描述】:
从大约 0.4.0 SignalR 的自定义版本升级,我发现身份验证不再有效。
我有一个 RIA 服务应用程序,带有表单身份验证(基于股票 AuthenticationBase)和 HttpContext.Current,从用于携带用户身份的 PersistentConnection 的处理程序访问。在 IIS 日志中,我看到身份仍然通过 RIA 请求传递。
升级到最新的 SignalR 我观察到身份在传入的 HttpContext 或 IRequest 中都不可用。从 Fiddler 日志中,请求被 403 拒绝并且不发送凭据。
将 Connection.Credentials 设置为 new NetworkCredentials() 不会改变任何内容。
查看源代码和完全不足的documentation 并没有产生任何见解。如果有人能够从 Silverlight 客户端到 ASP.NET 托管的 PersistentConnection 运行经过身份验证的连接,我将非常感谢任何指针!
PS:我也很好奇浏览器的网络追踪不再显示 SignalR 的流量,这是怎么回事?
【问题讨论】:
-
SignalR 流量使用 Http 客户端发送,阅读此文档:msdn.microsoft.com/en-us/library/dd920295(v=vs.95).aspx
-
有一点可能让您感到困扰的是,更高版本的 SignalR 使用客户端堆栈而不是浏览器堆栈。
-
这可以解释这两个观察结果,谢谢!现在我只需要弄清楚如何强制它重新使用浏览器请求管道......