G.D*_*mov 8 .net javascript wss signalr content-security-policy
我在 .NET 4.8 中创建了一个 SignalR 项目。
我按照文档中的描述正确使用了 signalR 。我的两个脚本标签:
<script src="~/Scripts/jquery.signalR-2.4.1.js"></script>
<script src="https://mySignalRServer/signalr/hubs"></script>
Run Code Online (Sandbox Code Playgroud)
我通过以下方式初始化连接:
$.connection.hub.url = "https://mySignalRServer/signalr";
let screencasting = $.connection.screencastingHub;
$.connection.hub.qs = 'uuid=' + masterGuid + '&master=true';
$.connection.hub.logging = true;
screencasting.client.changeTransport = changeTransport;
$.connection.hub.start({ transport: 'webSockets' }).done(function () {
console.log('---Connected to signalR server via WebSockets');
});
Run Code Online (Sandbox Code Playgroud)
当代码到达以下行时,$.connection.hub.start()会发生以下错误:
jquery.signalR-2.4.1.js:1871 拒绝连接到 'wss://mySignalRServer/signalr/connect?transport=webSockets&clientProtocol=2.1&uuid=56b12321-1091-48aa-b52f-dc1407b3804a&master=true&connectionToken=WOP95HhCwdN7ogruYHpfrrs ZofenOqo5kRDVLJh6S6zUH0AN74cUTEL44qORGBCRMWiGH5ei12826qLB%2BMHFa7YqaN1KeIYmG7dUAE%2B6DiF2CIwanNTl4dwbwR6t3Cxgx&connectionData =%5B%7B%22name%22%3A%22screencastinghub%22%7D%5D&tid=8',因为它违反了以下内容安全策略指令:“connect-src https:”。
有趣的是,这段代码运行良好。会不会是证书错误?我怎样才能添加这个Content Security Policy (CSP)。(在此输入链接描述)
它是否作为标题添加到某处?在 html 头中?
经过大量测试,这是对我有用的解决方案:
在Web.config文件中我添加了以下行:
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy" value="default-src https:; connect-src https: wss:" />
</customHeaders>
</<httpProtocol>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2478 次 |
| 最近记录: |