public async Task <ObjectResult> AutenticarAsync([FromBody] AutenticarRequest request)
        {
            //todo adicionar validação nas requests
            var usuario = await userManager.FindByNameAsync(request.NomeDeUsuario);

            if (usuario == null)
            {
                return(NotFound("Usuário não encontrado"));
            }

            var signinResult = await signInManager
                               .CheckPasswordSignInAsync(usuario, request.Senha, false);

            if (!signinResult.Succeeded)
            {
                return(BadRequest("Usuario ou senha inválidos"));
            }

            ClaimsIdentity identity = usuario.Identidade();

            String token = CreateSecurityToken(identity);

            return(Ok(new AutenticarResponse
            {
                Token = token,
                Mensagem = "OK"
            }));
        }
Beispiel #2
0
        public ListarResponse Autenticar(AutenticarRequest request)
        {
            if (request == null)
            {
                AddNotification("Autenticar", "Objeto 'AutenticarRequest' é obrigatório");
                return(null);
            }

            var usuario = _repositoryUsuario.ObterEntidade(request.UsuarioLogin);

            if (usuario == null)
            {
                AddNotification("Usuário", "Usuário não Localizado!");
                return(null);
            }

            //usuario.Autenticar(request.Senha);
            //AddNotifications(usuario.Notifications);

            ////var usuarioAutenticacaoValidationContract = new UsuarioAutenticacaoValidationContract(usuario, request.Senha);
            ////AddNotifications(usuarioAutenticacaoValidationContract.Contract.Notifications);

            //if (!IsValid)
            //    return null;

            //Feito dessa forma, pois o processo de autenticação do OAuth não liberar os objetos envolvidos do contexto
            if (!usuario.Autenticar(request.Senha))
            {
                return(null);
            }

            return(_repositoryUsuario.ObterPorId(usuario.Id));
        }
Beispiel #3
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

            var autenticarRequest = new AutenticarRequest
            {
                UsuarioLogin = context.UserName,
                Senha        = context.Password
            };

            var usuario = _serviceUsuario.Autenticar(autenticarRequest);

            if (usuario == null)
            {
                context.SetError("Erro de Autenticação", "Usuário ou Senha Inválidos.");
                return;
            }

            var identity = new ClaimsIdentity(context.Options.AuthenticationType);

            //Definindo as Claims
            identity.AddClaim(new Claim("UsuarioId", usuario.Id.ToString()));
            identity.AddClaim(new Claim("UsuarioNome", usuario.Nome));
            identity.AddClaim(new Claim("UsuarioLogin", usuario.UsuarioLogin));
            identity.AddClaim(new Claim("UsuarioEmail", usuario.Email));

            var principal = new GenericPrincipal(identity, new string[] { });

            Thread.CurrentPrincipal = principal;
            context.Validated(identity);
        }
Beispiel #4
0
        public AutenticarResponse Autenticar(AutenticarRequest request)
        {
            if (request == null)
            {
                AddNotification("AutenticarResponse", MSG.OBJETO_X0_E_OBRIGATORIO.ToFormat("AutenticarRequest"));
                return(null);
            }
            var email   = new Email(request.Email);
            var usuario = new Usuario(email, request.Senha);

            AddNotifications(usuario);

            if (this.IsInvalid())
            {
                return(null);
            }

            usuario = _repositoryUsuario.Buscar(usuario.Email.Endereco, usuario.Senha);

            if (usuario.Id == null)
            {
                AddNotification("AutenticarResponse", MSG.DADOS_NAO_ENCONTRADOS);
                return(null);
            }

            return(new AutenticarResponse()
            {
                Id = usuario.Id,
                PrimeiroNome = usuario.Nome.PrimeiroNome
            });
        }
Beispiel #5
0
        public object Autenticar(

            [FromBody] AutenticarRequest request,
            [FromServices] SigningConfigurations signingConfigurations,
            [FromServices] TokenConfigurations tokenConfigurations)
        {
            bool credencialValidas      = false;
            AutenticarResponse response = _serviceUsuario.Autenticar(request);

            credencialValidas = response != null;

            if (credencialValidas)
            {
                ClaimsIdentity identity = new ClaimsIdentity(
                    new GenericIdentity(response.Id.ToString(), "Id"),
                    new[]
                {
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                    new Claim("Usuario", JsonConvert.SerializeObject(response))     // guarda as informações do usuário na claim
                });

                DateTime dataCriacao   = DateTime.Now;
                DateTime dataExpiracao = dataCriacao +
                                         TimeSpan.FromSeconds(tokenConfigurations.Seconds);
                var handler = new JwtSecurityTokenHandler();

                //Criar o Token
                var securityToken = handler.CreateToken(new SecurityTokenDescriptor {
                    Issuer             = tokenConfigurations.Issuer,
                    Audience           = tokenConfigurations.Audience,
                    SigningCredentials = signingConfigurations.SigningCredentials,
                    Subject            = identity,
                    NotBefore          = dataCriacao,
                    Expires            = dataExpiracao
                });
                var token = handler.WriteToken(securityToken);

                return(new
                {
                    authenticated = true,
                    created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"),
                    expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"),
                    accessToken = token,
                    message = "Ok",
                    primeiroNomeDoPropriedade = response.PrimeiroNome
                });
            }
            else
            {
                return(new
                {
                    authenticated = false,
                    _serviceUsuario.Notifications
                });
            }
        }
        public async Task <RecursoViewModel> AutenticarAsync(string login, string senha)
        {
            AutenticarRequest request = new AutenticarRequest
            {
                Login = login,
                Senha = senha
            };

            return(_mapper.Map <RecursoViewModel>(await _client.AutenticarAsync(request)));
        }
Beispiel #7
0
        public override Task <AutenticarResponse> Autenticar(AutenticarRequest autenticarRequest, ServerCallContext context)
        {
            var request = autenticarParser.Request(autenticarRequest);

            var envelope = autenticacaoService.Autenticar(request);

            var response = autenticarParser.Response(envelope);

            return(Task.FromResult(response));
        }
Beispiel #8
0
 public ActionResult Post([FromBody] AutenticarRequest request)
 {
     if (request.Username == "teste" && request.Password == "teste")
     {
         return(Ok(new { success = true }));
     }
     else
     {
         return(BadRequest("Usuário e/ou senha inválido(s)!"));
     }
 }
        public override async Task <RecursoModel> Autenticar(AutenticarRequest request, ServerCallContext context)
        {
            RecursoModel result = _mapper.Map <RecursoModel>(_recursoAppService.Autenticar(request.Login, request.Senha, out bool valido));

            if (!valido)
            {
                //@@JONATHAN - ESTUDAR UMA MANEIRA DE DEVOLVER UM VALOR NULO VÁLIDO ATRAVÉS DO GRPC.
            }

            return(await Task.FromResult(result));
        }
        public async Task <IActionResult> AutenticarAsync([FromBody] AutenticarRequest request)
        {
            var result = await this.usuarioApp.AutenticarAsync(request);

            return(result.ToHttpResponse());
        }