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");
        }
Пример #2
0
        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
            });
        }