首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在WebAPI 2中进行CORS认证?

如何在WebAPI 2中进行CORS认证?
EN

Stack Overflow用户
提问于 2013-11-20 03:00:32
回答 6查看 88.4K关注 0票数 74

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

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

代码语言:javascript
复制
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

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

代码语言:javascript
复制
// Cors
var cors = new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS");
config.EnableCors(cors);

我还应该改变什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-11-20 04:56:23

看看我找到了什么!

<system.webServer>中添加一些自定义标头。

代码语言:javascript
复制
<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
  </customHeaders>
</httpProtocol>

然后我就可以做CORS认证了。

票数 79
EN

Stack Overflow用户

发布于 2014-09-26 04:27:53

为了详细阐述Youngjae的答案,在http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/上有一个很好的教程,介绍了如何使用Web API设置OWIN并在该过程中启用CORS

您需要使用以下命令添加CORS的NuGet包:

Install-Package Microsoft.Owin.Cors -Version 2.1.0

然后添加

app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);

添加到Startup.cs中的配置方法中,使其看起来如下所示:

代码语言:javascript
复制
public void Configuration(IAppBuilder app)
{
    HttpConfiguration config = new HttpConfiguration();
    ConfigureOAuth(app);
    WebApiConfig.Register(config);
    app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
    app.UseWebApi(config);
}
票数 16
EN

Stack Overflow用户

发布于 2015-03-04 22:46:43

我的答案在

Web Api 2 Preflight CORS request for Bearer Token

具体地说,使用OAuthAuthorizationServerProvider.GrantResourceOwnerCredentials实现的/Token请求再次添加了标头。在任何其他OWIN配置之前添加OWIN CORS内容,并根据该链接从GrantResourceOwnerCredentials中删除头文件,然后就是这样。祝好运。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20079813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档