CORS 在 ASP.NET-Core-Application 中不起作用

CORS does not work in ASP.NET-Core-Application

我想向我的 web-odataAPI 应用程序添加一项策略,以仅允许来自一个地址的通信。

根据我的理解,在 Startup 中是这样的:

services.AddCors(options =>
            {
                options.AddPolicy(
                    "AllowSpecificOrigins",
                    co => co
                                    .WithOrigins("https://localhost:3000/")
                                    .AllowAnyHeader()
                                    .WithMethods()
                                    .AllowCredentials());

                options.DefaultPolicyName = "AllowSpecificOrigins";
            });


在配置中:

app.UseCors("AllowSpecificOrigins");

在 Get-Route 上面,我执行以下操作:

[EnableCors("AllowSpecificOrigins")]

当我 运行 通过 Postman、Firefox 和 Chrome 来自 https://localhost:5000 的这个请求时,它工作正常,即使在我的理解中,它只应该工作 localhost:3000,对吧?

浏览器安全性阻止网页向与为该网页提供服务的域不同的域发出请求。此限制称为 same-origin 策略。 same-origin 策略可防止恶意站点从其他站点读取敏感数据。有时,您可能希望允许其他网站向您的应用发出 cross-origin 请求。有关详细信息,请参阅 Mozilla CORS article.

CORS 不是安全功能,CORS 放宽了安全性。 API 允许 CORS 并不安全。有关详细信息,请参阅 How CORS works