Mil*_*hev 6 cors owin asp.net-web-api2
我有一个带有令牌身份验证的ASP.NET Web Api 2.0项目,所有工作主要完成本文之后:
使用ASP.NET Web API 2,Owin和Identity,Bit Of Technology进行基于令牌的身份验证
但是我很难理解我的Startup.cs中的这行代码究竟是做什么的:
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Run Code Online (Sandbox Code Playgroud)
这不会使Web Api将Access-Control-Allow-Origin标头添加到我的API响应中,换句话说,它不会在我的Web Api中启用Cors(仍然试图了解如何执行此操作).它甚至没有将它添加到我的承载令牌认证服务器响应中.我必须将此代码提供给OAuthAuthorizationServerProvider:
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
Run Code Online (Sandbox Code Playgroud)
在我的令牌提供者端点响应上启用Cors.
那么这个Microsoft.Owin.Cors中间件的用途是什么呢?因为我到处读到有关Web Api 2.0和Cors的这一行代码
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Run Code Online (Sandbox Code Playgroud)
过来:
谢谢你关注我的教程.
此LOC app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);用于为API本身启用CORS(任何继承自的控制器ApiController).
但是对于Authz服务器和终点,/token这没有任何影响,这就是为什么我要添加context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });这个终点不是API的一部分而且不从ApiController类继承.
希望这能回答你的问题.
| 归档时间: |
|
| 查看次数: |
5567 次 |
| 最近记录: |