使用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:在协商请求期间出错:未定义”的警报。
我该如何解决这个问题?
答案 0 :(得分:1)
这只是标准mixed-mode连接阻止。当您使用HTTPS页面时,其中的所有资源都应该是HTTPS,否则即使您认为自己位于安全页面上,也可能被欺骗以明确方式发送数据。所以浏览器(IE至少)通过不允许这种形式的混合模式通信来保护您。如果您的页面是HTTPS,您的SignalR连接也需要是HTTPS。
答案 1 :(得分:0)
管理最终找到修复程序。安全问题是一个红色的鲱鱼。在IE10的正常情况下,它将使用jsop并给出此消息:
“SignalR:使用jsonp,因为此浏览器不支持CORS”
然而,对于这个特殊的客户,这种情况并没有发生。在连接时明确指定使用jsonp修复了问题。
$.connection.hub.start({ jsonp : true },function () { ...