public DtoApiResponseMessage CambioClave(string tokenCambioClave, string nuevaClave) { if (!string.IsNullOrEmpty(tokenCambioClave)) { if (string.IsNullOrEmpty(nuevaClave)) { throw new Exception("Clave no válida"); } var usuario = _usuarioRepository.GetOneOrDefault <Sg01_Usuario>(x => x.Estado.Equals(Auditoria.EstadoActivo) && x.TokenCambioClave.Equals(tokenCambioClave)); if (usuario != null && _tokenValidator.ExisteTokenUsuarioCambioClave(tokenCambioClave)) { var claveEncriptada = UtilEncodeDecode.Sha256Hash(UtilEncodeDecode.Base64Decode(nuevaClave)); if (usuario.Clave == claveEncriptada) { return(_apiResponseMessage.CrearDtoApiResponseMessage(new List <DtoGenerico>() { new DtoGenerico() { Bdt1 = false } }, "VE_SSN_INS_002")); } usuario.Clave = claveEncriptada; usuario.EnvioEmailActivacion = true; usuario.FechaModificacion = DateTime.Now; usuario.UsuarioModificacion = usuario.NombreUsuario; usuario.InicioSesion = false; usuario.Token = null; usuario.TokenCambioClave = null; ActualizarUsuario(usuario); return(_apiResponseMessage.CrearDtoApiResponseMessage(new List <DtoGenerico>() { new DtoGenerico() { Bdt1 = true } }, "VE_SSN_INS_003")); } } throw new Exception("Permisos insuficientes"); }
public DtoGenerico IniciarSesion(string nombreUsuario, string clave) { var claveEncoded = UtilEncodeDecode.Sha256Hash(UtilEncodeDecode.Base64Decode(clave)); var usuario = UsuarioValidoCredenciales(nombreUsuario, claveEncoded); if (usuario != null) { var estadoAutenticacion = ValidarUsuarioActivado(usuario); if (estadoAutenticacion.Bdt1) { estadoAutenticacion = ValidarUsuarioSesionesAbiertas(usuario); } if (estadoAutenticacion.Bdt1) { AutenticarUsuario(usuario); } return(MapearUsuarioAutenticado(usuario)); } return(new DtoGenerico() { Dt1 = "Credenciales Inválidas", Bdt1 = false }); }