【问题标题】:Q: SignalR authentication with .NET client works locally but not on server问:使用 .NET 客户端的 SignalR 身份验证在本地工作,但在服务器上不工作
【发布时间】:2017-04-20 20:16:40
【问题描述】:

我在 IIS 中托管我的 signalR,并且我有一个位于同一网站中的 .net 客户端。我正在使用 Windows 身份验证,因此凭据是这样设置的:

hubConnection.Credentials = CredentialCache.DefaultCredentials;

当我在本地运行站点时,这一切正常,但在服务器上部署时会出现 401 错误:

SignalR: myhub.DoStuff failed to execute. Error: StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Server: Microsoft-IIS/8.5
  WWW-Authenticate: Negotiate
  WWW-Authenticate: NTLM
  X-Powered-By: ASP.NET
  Date: Thu, 20 Apr 2017 19:40:41 GMT
  Content-Length: 1293
  Content-Type: text/html
}

我在浏览器开发者工具中看到了上述错误,并且在运行此行时发生:

hubConnection.Start().Wait();

我很确定凭据本身是正确的,因为当我在本地运行站点并输入部署在服务器上的集线器 url 并传递该服务器的凭据时,我能够启动 hubConnection .

那么是什么阻止了 SignalR .Net 客户端在服务器上进行身份验证,而不是在本地进行身份验证?

【问题讨论】:

    标签: c# asp.net-mvc authentication signalr credentials


    【解决方案1】:

    现在我倾向于传递给 SignalR 的 .NET 客户端的凭据没有足够权限的理论。基本上每次我收到 401 错误时,我都会在服务器的事件查看器日志中看到一个新的审核失败条目,说使用的凭据无法登录。

    有谁知道需要授予该帐户哪些权限?

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 2017-06-25
      • 2017-02-06
      • 2021-10-03
      • 2011-06-28
      • 2019-07-04
      • 2017-03-02
      • 2015-12-04
      • 2013-09-29
      相关资源
      最近更新 更多