如何设置 Content-Security-Policy 以允许 web.config 文件中的 botframework 脚本
How to set Content-Security-Policy to allow botframework scripts in web.config file
我在我的 SharePoint 页面中添加了一个 Direcline 机器人,我创建了一个内容编辑器 Web 部件并在其中添加了一个 HTML 文件,在 html 文件中我使用以下代码调用机器人,
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({
token: 'tokenid'
}),
styleOptions,
userID:emailid ,
username:user ,
locale: 'en-US',
userAvatarInitials: 'iniital'
},
document.getElementById('webchat')
);
document.querySelector('#webchat > *').focus();
加载机器人时,我在 chrome 中收到以下控制台错误并且机器人不工作。
Refused to connect to 'wss://directline.botframework.com/v3/directline/conversations/7BqkaBZaNQIKKjPc2VBAOw-h/stream?watermark=-&t=ew0KICAiYWxnIjogIlJTMjU2IiwNCiAgImtpZCI6ICJBT08tZXhGd2puR3lDTEJhOTgwVkxOME1tUTgiLA0KICAieDV0IjogIkFPTy1leEZ3am5HeUNMQmE5ODBWTE4wTW1ROCIsDQogICJ0eXAiOiAiSldUIg0KfQ.ew0KICAiYm90IjogIkNBU19OTFBfQm90IiwNCiAgInNpdGUiOiAiOVBrZGsxZFpfOU0iLA0KICAiY29udiI6ICI3QnFrYUJaYU5RSUtLalBjMlZCQU93LWgiLA0KICAibmJmIjogMTU3NzY4NzQ3NSwNCiAgImV4cCI6IDE1Nzc2ODc1MzUsDQogICJpc3MiOiAiaHR0cHM6Ly9kaXJlY3RsaW5lLmJvdGZyYW1ld29yay5jb20vIiwNCiAgImF1ZCI6ICJodHRwczovL2RpcmVjdGxpbmUuYm90ZnJhbWV3b3JrLmNvbS8iDQp9.PwUk4yQgpXZ_ohnTUAZzfnvG5NQTteaLvX5iDDPbC6nFrs_S7pICngcldf_R8ujPDFBQISSXNc3O7fF5ndX3Qqk8SHPl1jM2yOV0tkqxKu-C-4OvTr2sDW_k7vmGpvNQQrbiAQvVrimNydrr3a6B2coQlvNes1CdZopsi01wnanDNmXErJBkQnCQ0-yQvkSSP7PiiC8eQewUsVT6onCsvBpwWj-CoZ6TBmWZdYUcGtZRx1WkqyZwKvRbKtyqvr_S7jBfZlL51DozYBEQ4_C0bt2R2p-7MTlE6egUi9ZTSTNklVlIFBqw7_hdWR92NLsWZqWewGUb2RvapYaTpWObuA' because it violates the following Content Security Policy directive: "default-src https: data: 'unsafe-inline' 'unsafe-eval'". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.
因为在我的 web.config 文件中我确实有这个 CSP header。
<add name="Content-Security-Policy" value="default-src https: data: 'unsafe-inline' 'unsafe-eval'" />
删除此 header 后,我可以 运行 机器人及其工作。但我不想在我的 web.config 文件中删除这个 header,我想明确提及这个 botframework URL 以便它允许机器人 运行.
所以请帮助我如何明确设置此 header 以允许所需的脚本 运行 机器人。
感谢您评论答案,通过添加 wss:问题已解决。
<add name="Content-Security-Policy" value="default-src https: data: wss: 'unsafe-inline' 'unsafe-eval'" />
我在我的 SharePoint 页面中添加了一个 Direcline 机器人,我创建了一个内容编辑器 Web 部件并在其中添加了一个 HTML 文件,在 html 文件中我使用以下代码调用机器人,
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({
token: 'tokenid'
}),
styleOptions,
userID:emailid ,
username:user ,
locale: 'en-US',
userAvatarInitials: 'iniital'
},
document.getElementById('webchat')
);
document.querySelector('#webchat > *').focus();
加载机器人时,我在 chrome 中收到以下控制台错误并且机器人不工作。
Refused to connect to 'wss://directline.botframework.com/v3/directline/conversations/7BqkaBZaNQIKKjPc2VBAOw-h/stream?watermark=-&t=ew0KICAiYWxnIjogIlJTMjU2IiwNCiAgImtpZCI6ICJBT08tZXhGd2puR3lDTEJhOTgwVkxOME1tUTgiLA0KICAieDV0IjogIkFPTy1leEZ3am5HeUNMQmE5ODBWTE4wTW1ROCIsDQogICJ0eXAiOiAiSldUIg0KfQ.ew0KICAiYm90IjogIkNBU19OTFBfQm90IiwNCiAgInNpdGUiOiAiOVBrZGsxZFpfOU0iLA0KICAiY29udiI6ICI3QnFrYUJaYU5RSUtLalBjMlZCQU93LWgiLA0KICAibmJmIjogMTU3NzY4NzQ3NSwNCiAgImV4cCI6IDE1Nzc2ODc1MzUsDQogICJpc3MiOiAiaHR0cHM6Ly9kaXJlY3RsaW5lLmJvdGZyYW1ld29yay5jb20vIiwNCiAgImF1ZCI6ICJodHRwczovL2RpcmVjdGxpbmUuYm90ZnJhbWV3b3JrLmNvbS8iDQp9.PwUk4yQgpXZ_ohnTUAZzfnvG5NQTteaLvX5iDDPbC6nFrs_S7pICngcldf_R8ujPDFBQISSXNc3O7fF5ndX3Qqk8SHPl1jM2yOV0tkqxKu-C-4OvTr2sDW_k7vmGpvNQQrbiAQvVrimNydrr3a6B2coQlvNes1CdZopsi01wnanDNmXErJBkQnCQ0-yQvkSSP7PiiC8eQewUsVT6onCsvBpwWj-CoZ6TBmWZdYUcGtZRx1WkqyZwKvRbKtyqvr_S7jBfZlL51DozYBEQ4_C0bt2R2p-7MTlE6egUi9ZTSTNklVlIFBqw7_hdWR92NLsWZqWewGUb2RvapYaTpWObuA' because it violates the following Content Security Policy directive: "default-src https: data: 'unsafe-inline' 'unsafe-eval'". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.
因为在我的 web.config 文件中我确实有这个 CSP header。
<add name="Content-Security-Policy" value="default-src https: data: 'unsafe-inline' 'unsafe-eval'" />
删除此 header 后,我可以 运行 机器人及其工作。但我不想在我的 web.config 文件中删除这个 header,我想明确提及这个 botframework URL 以便它允许机器人 运行.
所以请帮助我如何明确设置此 header 以允许所需的脚本 运行 机器人。
感谢您评论答案,通过添加 wss:问题已解决。
<add name="Content-Security-Policy" value="default-src https: data: wss: 'unsafe-inline' 'unsafe-eval'" />