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(); } })); }
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; } })); }
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))); }
public respuesta Post(LoginEntrada login) { respuesta res = new respuesta(Administrador.login(login.correo, login.contrasena)); return(res); }