相关疑难解决方法(0)

如何在WebAPI 2中进行CORS身份验证?

场景很简单,我需要从另一台服务器(不同于API服务器)登录才能检索访问令牌.

Microsoft.Owin.Cors在API服务器上安装了包.在Startup.Auth.cs文件中,public void ConfigureAuth(IAppBuilder app)我加入了

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Run Code Online (Sandbox Code Playgroud)

WebApiConfig.cs下面public static void Register(HttpConfiguration config),我添加了以下几行:

// Cors
var cors = new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS");
config.EnableCors(cors);
Run Code Online (Sandbox Code Playgroud)

我还应该改变什么?

cors asp.net-web-api

72
推荐指数
7
解决办法
8万
查看次数

CORS错误 - 请求的资源上没有"Access-Control-Allow-Origin"标头

我使用Angular前端连接到WEB API 2后端.失败的用例如下.当用户注册成功注册时,他们必须登录系统并重定向到新页面以收集更多信息.我正在使用TOKENS进行身份验证.

我在WebAPI配置中启用了CORS:

 var cors = new EnableCorsAttribute("http://localhost:7812", "*", "*");
        config.EnableCors(cors);   
Run Code Online (Sandbox Code Playgroud)

注册请求成功,响应头具有所需的CORS头:

**Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:7812**
Content-Length:0
Date:Sun, 24 Aug 2014 09:31:55 GMT
Server:Microsoft-IIS/8.0
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcUHJvamVjdHNcVGVzdGluZ1xNYWx0QXBhcnRtZW50c1xNYWx0YXBhcnRtZW50cy5BUElcTWFsdGFwYXJ0bWVudHMuQVBJXGFwaVxhY2NvdW50XHJlZ2lzdGVy?=
Run Code Online (Sandbox Code Playgroud)

在下一步中,我尝试将用户登录到系统.作为登录的一部分,前端从服务器请求TOKEN Request URL:http://localhost:7802/token.请求标头再次发送一个Origin标头,Origin:http://localhost:7812但这次我收到错误:XMLHttpRequest cannot load http://localhost:7802/token. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:7812' is therefore not allowed access.

有人有主意吗?

asp.net cors asp.net-web-api angularjs asp.net-web-api2

8
推荐指数
1
解决办法
3万
查看次数