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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....