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);
        }
예제 #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 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);
            }
        }
예제 #3
0
        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);
        }