【发布时间】: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