SignalR HTTPS client
本文关键字:client HTTPS SignalR | 更新日期: 2023-09-27 18:23:53
使用SignalR 0.53和OWIN自托管,我能够让HTTPS客户端成功连接到非HTTPS本地主机端口。
我现在已经升级到SignalR 1.1.2。
我已启用跨域,并已成功连接非HTTPS客户端。然而,现在看来HTTPS客户端将被阻止。
注意:我还必须使用IE10。这显示在控制台中:
SEC7111: HTTPS security is compromised by http://localhost:9100/signalr/hubs
将显示一条警告,内容为"SignalR:协商请求期间出错:未定义"。
我该如何补救?
这只是标准的混合模式连接阻塞。当你在一个HTTPS页面上时,它的所有资源都应该是HTTPS,否则你可能会被欺骗,即使你认为自己在一个安全的页面上,也会被欺骗发送数据。因此,浏览器(至少IE)通过不允许这种形式的混合模式通信来保护您。如果您的页面是HTTPS,那么SignalR连接也需要是HTTPS。
最终设法找到了修复程序。安全问题只是转移注意力。在IE10上的正常情况下,它将使用jsop并给出以下消息:
"SignalR:使用jsonp,因为此浏览器不支持CORS"
然而,对于这个特定的客户,这并没有发生。在连接时明确指定使用jsonp解决了这个问题。
$.connection.hub.start({ jsonp : true },function () { ...