OWIN 中的 CorsMiddleware

问题描述 投票:0回答:2

我仍在尝试了解 OWIN,特别是为什么我要使用 CorsMiddleware 通过 OWIN 配置 CORS:

appBuilder.UseCors(…)

而不是仅仅继续使用 HttpConfiguration,如下所示:

var config = new HttpConfiguration();
config.EnableCors(…);

appBuilder.UseWebApi(config);

鉴于后者与 EnableCors 和 DisableCors 属性兼容,这为您提供了更细粒度的控制(至少我还没有找到在每个控制器的基础上配置 CorsMiddleware 的方法)。

asp.net-web-api cors owin
2个回答
1
投票

如果 Web API CORS 适合您,那么就使用它吧。使用 Owin 中间件的唯一原因是,如果您的应用程序框架不支持它,或者您有多个应用程序托管在一起,并且宁愿使用一个 CORS 处理程序。

Owin中间件允许中间件的编写者只需要编写一次,而不是为每个框架编写。作为消费者,它不会给你增加太多价值。


0
投票

回答一个近10年前的问题😉:

我想在

IAppBuilder
中分享,人们可以在
System.Web.Cors.CorsPolicy
中设置多个 CORS 设置,包括允许的来源列表。然后从
CorsOptions
创建
CorsPolicy
:

var corsPolicy = new CorsPolicy
{
    // ...
};
corsPolicy.Origins.Add(origin);

var corsOptions = new CorsOptions
{
    PolicyProvider = new CorsPolicyProvider
    {
        PolicyResolver = context => Task.FromResult(corsPolicy)
    }
};
// finally
app.UseCors(corsOptions);
© www.soinside.com 2019 - 2024. All rights reserved.