繁体   English   中英

asp.net web api 2 CORS和身份验证授权配置

[英]asp.net web api 2 CORS and authentication authorization configuration

我已经创建了一个具有个人帐户安全性的asp.net web api 2服务。 我试图按照这个例子将它称为AngularJs: http//www.codeproject.com/Articles/742532/Using-Web-API-Individual-User-Account-plus-CORS-En无法得到它工作所以从这里添加一些配置: 如何在WebAPI 2中进行CORS身份验证?

并且无法通过此错误:XMLHttpRequest无法加载'serverRegisterUrl'。 'Access-Control-Allow-Origin'标头包含多个值'clientUrl,*,*',但只允许一个。 因此,不允许来源'clientUrl'访问。

我不明白这个错误信息。 我认为Access-Control-Allow-Origin字符串意味着允许原始clientUrl,所有标题,所有方法

我不明白这个问题。 如果我应该只在某处指定原点,我不知道那是哪里。

我在Microsoft Azure上运行此操作,并使用vs express for web 2013 update 2以防万一。

不幸的是,我不得不从错误消息中取出我的链接,因为我需要至少在这里发布信誉10才能在一个问题中发布超过2个链接。

我得到了它的工作,我认为它归结为配置。 Web.config:没有“Access-Control-Allow-Origin”customHeaders节点

Startup.Auth.cs:
// This must come first to intercept the /Token requests app.UseCors(CorsOptions.AllowAll);

// Enable the application to use bearer tokens to authenticate users app.UseOAuthBearerTokens(OAuthOptions); // Enable the application to use bearer tokens to authenticate users app.UseOAuthBearerTokens(OAuthOptions);

WebApiConfig.cs :(不在这里启用cors) //var cors = new EnableCorsAttribute("*", "*", "*"); //config.EnableCors(cors);

AccountController.cs:GetExternalLogin方法的属性: [EnableCors(origins: "*", headers: "*", methods: "*")]


我认为这是我目前的整个CORS配置。

刚加入@ AlexSmotritsky的答案。

在中使用UseCors方法

app.UseCors(CorsOptions.AllowAll);

记得安装Microsoft.Owin.Cors NuGet包并添加

使用Microsoft.Owin.Cors; 指示。

您的Access-Control-Allow-Origin值似乎是clientUrl, *, *可能无效。 它只允许一个值。 您可以使用*表示允许所有来源或您指定的来源,例如您的AngularJS主机。

我把我的代码放在https://gist.github.com/shaunxu/8414a78cd8074432fc69这可能不是东方方式,但它适用于我的应用程序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM