【问题标题】:SignalR Refused to connect to [url] because it violates the following Content Security Policy directiveSignalR 拒绝连接到 [url],因为它违反了以下内容安全策略指令
【发布时间】:2020-05-11 13:29:53
【问题描述】:

我在 .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()行时,会出现以下错误:

jquery.signalR-2.4.1.js:1871 拒绝连接 “WSS:// mySignalRServer / signalr /连接运输=的WebSockets&clientProtocol = 2.1&UUID = 56b12321-1091-48aa-b52f-dc1407b3804a&主=真&connectionToken = WOP95HhCwdN7ogruYHpfrrsZofenOqo5kRDVLJh6S6zUH0AN74cUTEL44qORGBCRMWiGH5ei12826qLB%2BMHFa7YqaN1KeIYmG7dUaE%2B6DiF2CIwaNTl4dwbwR6t3Cxgx&connectionData =%5B%7B%22name%22%3A%22screencastinghub%22 %7D%5D&tid=8' 因为它违反了以下内容安全政策指令: "连接-src https:"。

有趣的是,这段代码运行良好。会不会是证书错误?我怎样才能添加这个Content Security Policy (CSP)。 (enter link description here)

它是否作为标题添加到某处?在html头部?

【问题讨论】:

    标签: javascript .net signalr content-security-policy wss


    【解决方案1】:

    经过大量测试,这是为我制定的解决方案:

    Web.config 文件中,我添加了以下行:

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

    如需了解更多信息,请查看thisthat

    【讨论】:

      猜你喜欢
      • 2012-11-27
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 2020-06-23
      • 2015-09-21
      • 1970-01-01
      • 2013-07-19
      相关资源
      最近更新 更多