public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var header = context.OwinContext.Response.Headers.SingleOrDefault(h => h.Key == "Access-Control-Allow-Origin"); if (header.Equals(default(KeyValuePair <string, string[]>))) { context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); } UsuarioService.AdicionaUsuarioMaster(); var user = UsuarioService.Autentica(context.Password, context.UserName); if (user == null) { #region Log LogService.CriaLogMongo(new LogModel { Classe = "SimpleAuthorizationServerProvider", Controller = "", Data = DateTime.Now, Linha = 29, Mensagem = "Usuário não encontrado: " + context.UserName, Metodo = "GrantResourceOwnerCredentials", Tipo = Tipo.Erro, QtdeRegistrosRetornados = 0 }); #endregion context.SetError("invalid_grant", "The user name or password is incorrect."); return; } var identity = new ClaimsIdentity(context.Options.AuthenticationType); identity.AddClaim(new Claim("sub", context.UserName)); identity.AddClaim(new Claim("role", "user")); context.Validated(identity); #region Log LogService.CriaLogMongo(new LogModel { Classe = "SimpleAuthorizationServerProvider", Controller = "", Data = DateTime.Now, Linha = 29, Mensagem = "Usuário Autorizado: " + context.UserName + " AuthenticantionType: " + identity.AuthenticationType + " IsAuthenticated: " + identity.IsAuthenticated, Metodo = "GrantResourceOwnerCredentials", Tipo = Tipo.Info, QtdeRegistrosRetornados = 1 }); #endregion }