asp.net-web-api – owin cors或web api cors

前端之家收集整理的这篇文章主要介绍了asp.net-web-api – owin cors或web api cors前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
CORS在web-api上有100个问题,以及如何启用CORS,每个人都提供了不同的答案.我很困惑,不知道哪个答案是正确的.而且问题是没有一个答案实际上解释了它是明智的,每行代码的作用,所以我可以理解和解决我的问题,而不是复制粘贴代码.

无论如何,问题是:我正在使用asp.net web api 2使用owin.我需要启用CORS.我该怎么做? OWIN有cors设置

application.UseCors(CorsOptions.AllowAll);

并有asp.net web api的cors设置

var cors = new EnableCorsAttribute("*","*","*");
   config.EnableCors(cors);

我应该使用哪一个,因为我不使用OAUTH(我指定这个,因为在我们不使用OAUTH v / s的时候,对于SO的答案有所不同).

我需要为OWIN& WEB-API或其中一个.如果两者都启用,则会出现问题,read here

如果有人可以解释我的区别,这将是非常有帮助的

> OWIN CORS
> WEB API CORS
> CORS与OAUTH使用OWIN / WEBAPI

此外,还有针对owin托管的web-api的自我托管的web api的答案,这进一步增加了暗示:(对不起,

解决方法

如果您需要将CORS应用于您的API控制器,则应使用Web API的CORS.对于其他一切(像令牌服务),你就不得不使用Owin.Cors.

如果最终使用两者,则需要确保它们不重叠,并将CORS应用于同一请求两次.

Web API 2.2可以通过提供EnableCorsAttribute来轻松启用CORS.

基本用法

[EnableCors("*","*")]
public class ResourcesController : ApiController
{
    ...

属性定义

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method,AllowMultiple = false)]
public EnableCorsAttribute(
    string origins,string headers,string methods
)

使CORS全球使用

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        var cors = new EnableCorsAttribute("www.example.com","*");
        config.EnableCors(cors);
        // ...
    }
}

您还需要从nuget安装CORS软件包

Install-Package Microsoft.AspNet.WebApi.Cors

猜你在找的asp.Net相关文章