O que exatamente é o middleware Microsoft.Owin.Cors quando usado com o ASP.NET Web Api 2.0?
Eu tenho um projeto ASP.NET Web Api 2.0 com autenticação de token e tudo o que foi feito principalmente após este artigo:
Autenticação baseada em token usando ASP.NET Web API 2, Owin e Identity, Bit Of Technology
Mas estou lutando para entender o que exatamente essa linha de código no meu Startup.cs faz:
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
Isso não faz com que a API da Web adicione o cabeçalho Access-Control-Allow-Origin às minhas respostas da API, ou seja, não habilita o Cors na minha API da Web (ainda tentando entender como fazer isso a propósito). Ele nem o adiciona à resposta do servidor de autenticação de token do portador. Preciso ter esse código no meu OAuthAuthorizationServerProvider:
public override Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });
para ativar o Cors nas respostas dos pontos finais do meu provedor de token.
Então, qual é o uso desse middleware Microsoft.Owin.Cors? Porque em todo lugar que eu leio sobre Web Api 2.0 e Cors, essa linha de código
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
surge: