首页 > 解决方案 > 如何使用 webSocketOptions.AllowedOrigins?

问题描述

我有一个 ASP 网络应用程序。

该应用程序打开一个 websocket 通信服务器。websocket 服务器正常工作。

var webSocketOptions = new WebSocketOptions()
        {
            KeepAliveInterval = TimeSpan.FromSeconds(120),
        };                        
app.UseWebSockets(webSocketOptions);

app.Use(async (context, next) =>
{
    if (context.Request.Path == "/ws")
    {
        if (context.WebSockets.IsWebSocketRequest)
        {
            using (WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync())
            {
                //do some stuff
            }
        }
        else
        {
            context.Response.StatusCode = 400;
        }
    }
    else
    {
        await next();
    }

});

当我打开我的域 example.com 并转到 Chrome Web 控制台时,以下代码有效:

var socket = new WebSocket("wss://www.example.com/ws");

但是,当我添加安全约束时:

webSocketOptions.AllowedOrigins.Add("https://www.example.com");

websocket 连接不再起作用。我收到错误

VM376:1 WebSocket connection to 'wss://www.example.com/ws' failed: Error during WebSocket handshake: Unexpected response code: 403

谁能帮助请教如何使用webSocketOptions.AllowedOrigins

我希望仅当从我的网站www.example.com发出请求时才允许 Websocket 访问

谢谢

标签: c#asp.netwebsocket

解决方案


推荐阅读