加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:24:18 所属栏目:asp.Net 来源:网络整理
导读:CORS在web-api上有100个问题,以及如何启用CORS,每个人都提供了不同的答案.我很困惑,不知道哪个答案是正确的.而且问题是没有一个答案实际上解释了它是明智的,每行代码的作用,所以我可以理解和解决我的问题,而不是复制粘贴代码. 无论如何,问题是:我正在使用as
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读