private static Usuario BuildUsuario(IDataReader reader) { Usuario usuario = null; string userName = reader["UserName"].ToString(); string nombre = reader["Nombre"].ToString(); string apellido = reader["Apellido"].ToString(); string email = reader["Email"].ToString(); string sexo = reader["Sexo"].ToString(); DateTime fechaNacimiento = (DateTime)reader["FechaNacimiento"]; string domicilio = reader["Domicilio"].ToString(); string telefonoParticular = reader["TelefonoParticular"].ToString(); string telefonoCelular = reader["TelefonoCelular"].ToString(); object guid = reader["FotoGUID"]; Guid fotoGUID = guid == null || guid.ToString() == string.Empty ? Guid.Empty : new Guid(guid.ToString()); bool esMiembro = (bool)reader["EsMiembro"]; bool habilitado = (bool)reader["Habilitado"]; int idMiembro = (int)reader["IdMiembro"]; bool pendiente = (bool)reader["Pendiente"]; string encriptedPassword = (string)reader["Password"]; string password = EncriptadorHelper.Decrypt(encriptedPassword); usuario = new Usuario(userName, password, nombre, apellido, email, sexo, fechaNacimiento, domicilio, telefonoParticular, telefonoCelular, esMiembro, idMiembro, new List <Role>(), new List <Operacion>(), pendiente, habilitado); usuario.EncriptedPassword = encriptedPassword; usuario.FotoGUID = fotoGUID; return(usuario); }
public IActionResult PedirToken( [FromBody] PedirTokenRequest request) { Usuario usuario = _usuarioService.RecuperarPorCorreo(request.codigo); //Validar que haya recuperado if (usuario == null) { return(BadRequest("Usuario invalido: correo")); } //Validar la clave if (EncriptadorHelper.Decrypt(usuario.Password) != request.clave) { return(BadRequest("Usuario invalido: clave")); } //Metadata para el token Claim[] misClaims = new[] { new Claim("correo", usuario.Email), new Claim("id", usuario.IdUsuario.ToString()) }; //Generar el JWT JwtSecurityToken var cred = new SymmetricSecurityKey( Encoding.UTF8.GetBytes( Configuration["SemillaJWT"] )); var firma = new SigningCredentials(cred, SecurityAlgorithms.HmacSha256); JwtSecurityToken jwt = new JwtSecurityToken( issuer: "midominio.com", audience: "midominio.com", claims: misClaims, expires: DateTime.Now.AddMinutes(5), signingCredentials: firma ); //Devolver el hash string ruta = new JwtSecurityTokenHandler().WriteToken(jwt); return(Ok( new { usuario = usuario, token = ruta } )); }