在www.example.com核心Web应用程序中使用SignalR启用Cors策略asp.net

rpppsulh  于 2023-04-13  发布在  .NET
关注(0)|答案(1)|浏览(138)

我有一个包含方法的signalR hub类,我创建了一个客户端控制台应用程序来测试该方法是否工作,在实现cors后,在服务器中没有实现cors就可以正常工作。
我希望它不给访问localhost只给访问指定的url,但它仍然给访问localhost和连接到服务器我如何解决这个问题. [ This is cors policy t hat I add in program.cs class ]

https://i.stack.imgur.com/LEBq8.png

这是客户端控制台应用程序,当从本地主机访问时必须阻止,但它仍然提供数据`(https://i.stack.imgur.com/2Nqxt.png

lyr7nygr

lyr7nygr1#

1,将WithOrigins改为允许所有,如下所示:

builder.Services.AddCors(options => options.AddPolicy("AdminCorsPolicy", builder =>
    {
        builder.AllowAnyMethod()
            .SetIsOriginAllowed(_ => true)
            .AllowAnyHeader()
            .AllowCredentials();
    }));

2、像下面这样改变中间件顺序

app.UseHttpsRedirection();
    app.UseStaticFiles();
    // move to here
    app.UseCors("AdminCorsPolicy");

    app.UseElmah();

    app.UseRouting();

3,删除DashboardHub中的属性。

摘要

在检查了你的示例代码后,我发现你似乎在WithOrigins中使用了错误的params,中间件顺序也不正确。
在您的场景中,如果有其他Web应用程序(URL为http://a.com),那么我们需要在WithOrigins中添加http://a.com,以便a.com可以访问我们的signalR服务器。

相关问题