public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var usuario = BaseUsuarios .Usuarios() .FirstOrDefault(x => x.nome == context.UserName && x.senha == context.Password); if (usuario == null) { context.SetError("invalid_grant", "Usuário não encontrado ou senha incorreta."); return; } var props = new AuthenticationProperties(new Dictionary <string, string> { { "UserName", context.UserName } }); var identity = new ClaimsIdentity(context.Options.AuthenticationType); var identidadeUsuario = new AuthenticationTicket(identity, props); foreach (var funcao in usuario.funcoes) { identidadeUsuario.Identity.AddClaim(new Claim(ClaimTypes.Role, funcao)); } context.Validated(identidadeUsuario); }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { var usuario = BaseUsuarios .Usuarios() .FirstOrDefault(x => x.Nome == context.UserName && x.Senha == context.Password); if (usuario == null) { context.SetError("invalid_grant", "Usuário ou senha inválido."); } else { var props = new AuthenticationProperties(new Dictionary <string, string> { { "UserName", context.UserName } }); var identidade = new ClaimsIdentity(context.Options.AuthenticationType); var identidadeUsuario = new AuthenticationTicket(identidade, props); foreach (string papel in usuario.Papeis) { identidadeUsuario.Identity.AddClaim(new Claim(ClaimTypes.Role, papel)); } context.Validated(identidadeUsuario); } }
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { //validação ou não do usuario var usuario = BaseUsuarios .Usuarios() .FirstOrDefault(x => x.Nome == context.UserName && x.Senha == context.Password); if (usuario == null) { context.SetError("invalid_grant", "Usuário não encontrado ou senha incorreta"); } var identidadeUsuario = new ClaimsIdentity(context.Options.AuthenticationType); context.Validated(identidadeUsuario); }