SignalR MVC 5 Websocket没有有效的凭证

酒馆

我尝试在MVC应用程序中使用SignalR。它工作正常,但我在Chrome控制台中收到以下错误

 WebSocket connection to 'ws://localhost:18245/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=bNDGLnbSQThqY%2FSjo1bt
8%2FL45Xs22BDs2VcY8O7HIkJdDaUJ4ftIc54av%2BELjr27ekHUiTYWgFMfG6o7RaZwhf
fpXavzWQ1jvkaxGm5rI%2BWtK7j0g1eQC2aOYP366WmRQLXCiYJfsm4EbwX6T8n2Aw
%3D%3D&connectionData=%5B%7B%22name%22%3A%22importerhub%
22%7D%5D&tid=9' failed: HTTP Authentication failed; no valid credentials available 

有趣的是,我通过集线器从Controller调用的jquery方法工作正常。

jQuery的:

 $(function () {
            // Initialize the connection to the server
            var importerHub = $.connection.importerHub;

            // Preparing a client side function
            // called sendMessage that will be called from the server side
            importerHub.client.sendMessage = function (message) {
                showOrUpdateSuccessMessage(message);
            };
            $.connection.hub.start();
        });

控制器:

var hubContext = GlobalHost.ConnectionManager.GetHubContext<ImporterHub>();
            hubContext.Clients.All.sendMessage("All operations complete");

我使用带有Windows身份验证的.Net v4.5.1,SignalR v2.1.2.0和IIS 8.5。

如何解决此错误?

支架73

您似乎遇到了Chrome问题。问题是Chrome无法正确处理WebSocket的Windows身份验证。

以下是几年前提交的最初问题,报告说Chrome不支持任何形式的HTTP身份验证:

https://code.google.com/p/chromium/issues/detail?id=123862

基本和摘要身份验证已解决该问题,但Windows(NTLM / Negotiate)身份验证尚未解决。不到一个月前创建了一个问题,用于跟踪Chrome对WebSockets对Windows身份验证的支持进度:

https://code.google.com/p/chromium/issues/detail?id=423609

显然,Windows身份验证的问题已在Chrome开发者频道中得到部分解决,但前提是客户端在建立WebSocket之前已通过服务器进行了身份验证。

您仍然可以sendMessage从Controller调用的原因是,当WebSocket连接失败时,SignalR自动回退到使用WebSockets以外的其他传输方式(即服务器发送的事件或长轮询)。Chrome可以使用SignalR的其他传输方式正确处理Windows身份验证。

我建议不要更改任何内容。看来Chrome最终将支持Windows身份验证的WebSocket。

除了Chrome控制台中的错误外,唯一真正的问题是在Chrome中建立SignalR连接可能会花费更长的时间。如果这是个大问题,您可以随时指定客户端应尝试使用的传输方式因此,在Chrome上,您只能尝试serverSentEventslongPolling,但是当Chrome确实解决了该问题时,除非更改代码,否则您将无法使用最佳传输方式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章