ASP.NET Core5.0 SignalR CORS 跨域处理

一、ASP.NET Core5.0 SignalR CORS 跨域处理

1.在Asp.Net Core 3.0 SingalR 以前的版本配置跨域处理参考:

ASP.NET Core SignalR CORS 跨域处理_天马3798的博客-CSDN博客_signalr 跨域

核心代码:

//注册signalr--指定跨域方案
app.UseCors("any").UseSignalR(route =>
    {
        route.MapHub<NoticeHub>("/ws_notice");
    });

2.在Asp.Net Core 3.0 后路由配置使用了 UseEndpoints 终结点方式,以前的方法UseSignalR不在支持。

3.新版使用 MapHub 绑定集线器,使用RequireCors 配置跨域处理。

4.在Asp.Net Core 3.0 后SingalR启动方式也发生了变化,详情见下面文章连接。
 

二、新版解决方案:

1.设置CORS

           //设置跨域访问
            services.AddCors(options =>
            {
                //登录用户使用
                options.AddPolicy("any", builder =>
                {
                    builder.WithOrigins(
                        "http://crm.muzixiaohua.com/",
                        "http://localhost:55329",
                        "http://192.168.0.105",
                        "http://localhost:64151",
                        "http://localhost:8080",
                        "http://localhost:8081",
                        "http://localhost:8082",
                        "null")
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials();
                });
                //公开使用
                options.AddPolicy("all", builder =>
                {
                    builder.WithOrigins("*")
                    .AllowAnyMethod()
                    .AllowAnyHeader();
                });
            });

2.配置集线器,设置跨域

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllerRoute(
                         name: "default",
                         pattern: "{controller=Home}/{action=Index}/{id?}");
                endpoints.MapAreaControllerRoute(
                  name: "api", "api",
                  pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");

                //注册signalr--指定跨域方案
               endpoints.MapHub<NoticeHub>("/ws_notice").RequireCors("any");
            });

更多:

Asp.Net Core6 WebSocket绑定

ASP.NET Core SignalR.NET 客户端

Asp.Net Core 3.1 SignalR 启动配置变化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值