Exemplo n.º 1
0
        public override async Task GrantResourceOwnerCredentials
            (OAuthGrantResourceOwnerCredentialsContext context)
        {
            // encontrando o usuário
            var usuario = BaseUsuarios
                          .Usuarios()
                          .FirstOrDefault(x => x.Nome == context.UserName &&
                                          x.Senha == context.Password);

            // cancelando a emissão do token se o usuário não for encontrado
            if (usuario == null)
            {
                context.SetError("invalid_grant",
                                 "Usuário não encontrado um senha incorreta.");
                return;
            }

            // emitindo o token com informacoes extras
            // se o usuário existe
            var identidadeUsuario = new ClaimsIdentity(context.Options.AuthenticationType);

            foreach (var funcao in usuario.Funcoes)
            {
                identidadeUsuario.AddClaim(new Claim(ClaimTypes.Role, funcao));
            }

            context.Validated(identidadeUsuario);
        }
Exemplo n.º 2
0
        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 identidadeUsuario = new ClaimsIdentity(context.Options.AuthenticationType);

            context.Validated(identidadeUsuario);
        }