0

使用 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:协商请求期间出错:未定义”的警报。

我该如何补救?

4

2 回答 2

1

这只是标准的混合模式连接阻塞。当您在使用 HTTPS 的页面上时,来自该页面的所有资源都应该是 HTTPS,否则即使您认为自己在安全页面上,您也可能会被诱骗以明文形式发送数据。因此,浏览器(至少是 IE)通过不允许这种形式的混合模式通信来保护您。如果您的页面是 HTTPS,您的 SignalR 连接也需要是 HTTPS。

于 2013-07-19T20:57:39.763 回答
0

最后设法找到了解决办法。安全问题是一个红鲱鱼。在 IE10 上的正常情况下,它会使用 jsop 并给出以下消息:

“SignalR:使用 jsonp,因为此浏览器不支持 CORS”

但是,对于这个特定的客户,这并没有发生。连接时明确指定使用 jsonp 可解决问题。

$.connection.hub.start({ jsonp : true },function () { ...
于 2013-08-02T14:56:54.127 回答