SignalR拒绝连接到[url],因为它违反了以下内容安全策略指令。

问题描述 投票:2回答:1

我在.NET 4.8中创建了一个SignalR项目。

我按照文档中的描述正确地使用了signalR。我的两个脚本标签。

<script src="~/Scripts/jquery.signalR-2.4.1.js"></script>
<script src="https://mySignalRServer/signalr/hubs"></script>

我用下面的方式初始化连接。

$.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');
});

当代码运行到下面一行时 $.connection.hub.start() 出现以下错误。

enter image description here

jquery.signalR-2.4.1.js:1871拒绝连接到'wss:/mySignalRServersignalrconnect?transport=webSockets&clientProtocol=2. 1&uuid=56b12321-1091-48aa-b52f-dc1407b3804a&master=true& connectionToken=WOP95HhCwdN7ogruYHpfrrsZofenOqo5kRDVLJh6S6zUH0AN74cUTEL44qORGBCRMWiGH5ei12826qLB%2BMHFa7YqaN1KeIYmG7dUaE%2B6DiF2CIwaNTl4dwbwR6t3Cxgx&amp。 connectionData=%5B%7B%22name%22%3A%22screencastinghub%22%7D%5D&tid=8'因为它违反了以下内容安全策略指令。 "connect-src https:"。

有趣的是,这段代码却能正常工作。难道是证书错误?我如何添加这个 Content Security Policy (CSP). (请在此输入链接描述)

是否在某处加了头?在html的头部?

javascript .net signalr content-security-policy wss
1个回答
1
投票

经过大量的测试,这是我的解决方案。

在... Web.config 文件中,我添加了以下一行。

<httpProtocol>
      <customHeaders>
        <add name="Content-Security-Policy" value="default-src https:; connect-src https: wss:" />
      </customHeaders>
</<httpProtocol>

更多信息,请查看 这个 出。

© www.soinside.com 2019 - 2024. All rights reserved.