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设置@H_502_3@

application.UseCors(CorsOptions.AllowAll);

并有asp.net web api的cors设置@H_502_3@

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

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

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

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

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

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

解决方法

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

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

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

基本用法@H_502_3@

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

属性定义@H_502_3@

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

使CORS全球使用@H_502_3@

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

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

Install-Package Microsoft.AspNet.WebApi.Cors

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