public async Task <string> SolicitarToken(LoginEntrada login)
        {
            return(await Task <string> .Run(async() =>
            {
                var usuarioValido = await _usuarioNegocio.VerificaUsuario(login);
                if (usuarioValido)
                {
                    var credencial = new[]
                    {
                        new Claim(ClaimTypes.Name, login.Login),
                        new Claim(ClaimTypes.Role, login.Perfil.ToString()),
                    };

                    var chave = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuraracao.ChaveSecreta));


                    var signingCredentials = new SigningCredentials(chave, SecurityAlgorithms.HmacSha256);

                    var token = new JwtSecurityToken(
                        issuer: _configuraracao.Emissor,
                        audience: _configuraracao.ValidoEm,
                        claims: credencial,
                        expires: DateTime.UtcNow.AddMinutes(_configuraracao.ValidadeMinutos),
                        signingCredentials: signingCredentials);

                    return string.Concat("Bearer ", new JwtSecurityTokenHandler().WriteToken(token));
                }
                else
                {
                    throw new UsuarioouSenhaInvalidoExcecao();
                }
            }));
        }
Beispiel #2
0
 public async Task <bool> VerificaUsuario(LoginEntrada loginEntrada)
 {
     return(await Task <bool> .Run(() =>
     {
         var usu = _Repositorio.Query(where : u => u.Login == loginEntrada.Login &&
                                      loginEntrada.Perfil == u.Perfil
                                      ).FirstOrDefault();
         if (usu != null)
         {
             return _criptografiaNegocio.ComparaValor(loginEntrada.Senha, usu.Senha);
         }
         else
         {
             return false;
         }
     }));
 }
Beispiel #3
0
        public async Task <IActionResult> SolicitarTokenAsync([FromBody] LoginEntrada usuario)
        {
            try
            {
                var token = await _Autenticacao.SolicitarToken(usuario);

                return(Ok(token));
            }
            catch (UsuarioouSenhaInvalidoExcecao)
            {
                return(Unauthorized());
            }
            catch (System.Exception)
            {
                return(BadRequest());
            }
        }
        public respuesta Verificar_Login(LoginEntrada login)
        {
            string jsonString = JsonSerializer.Serialize(login);

            Console.WriteLine("Lo que llega: " + jsonString);
            Console.WriteLine("correo: " + login.correo);
            Console.WriteLine("Contrasena: " + login.contrasena);


            if (Administrador.login(login.correo, login.contrasena) == "admin")
            {
                return(new respuesta("admin"));
            }
            if (Administrador.login(login.correo, login.contrasena) == "usuario")
            {
                return(new respuesta("usuario"));
            }
            return(new respuesta("denegar"));
        }
        public async Task <ISaidaResultado> Post([FromBody] LoginEntrada entrada)
        {
            if (await _clienteRepositorio.ValidaCliente(entrada.CPF, entrada.Senha))
            {
                var claims = new[]
                {
                    new Claim(ClaimTypes.SerialNumber, entrada.CPF)
                };

                var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Settings.SecurityKey));
                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
                var token = new JwtSecurityToken(
                    issuer: "Teste",
                    audience: "Teste",
                    claims: claims,
                    expires: DateTime.Now.AddMinutes(30),
                    signingCredentials: creds);

                var tokenGerado = new JwtSecurityTokenHandler().WriteToken(token);
                return(await Task.FromResult(new SaidaResultado(true, "Token gerado.", tokenGerado)));
            }

            return(await Task.FromResult(new SaidaResultado(false, "CPF ou senha incorreto.", null)));
        }
Beispiel #6
0
        public respuesta Post(LoginEntrada login)
        {
            respuesta res = new respuesta(Administrador.login(login.correo, login.contrasena));

            return(res);
        }