示例#1
0
        public JsonResult CambiarClave(CambiarClaveModeloVista entidad)
        {
            var claveEncriptar = AppSettings.Get <string>(ConstantesWebConfig.CLAVE_ENCRYPTACION);

            string json = string.Empty;

            try
            {
                json = TripleDES.Decode(Base64.DecodeUrl(entidad.param), MD5.Encode(claveEncriptar));
            }
            catch (System.Security.Cryptography.CryptographicException e)
            {
                throw new NegocioExcepcion("El link no tiene un formato adecuado.");
            }

            dynamic obj = JsonConvert.DeserializeObject <dynamic>(json);

            int    usuarioId = obj.Id;
            string clave     = obj.Clave;

            var usuario = _repository.Get(usuarioId);

            if (usuario.Clave.Equals(clave))
            {
                usuario.Clave = TripleDES.Encode(entidad.clave, MD5.Encode(claveEncriptar));
                _repository.SaveOrUpdate(usuario);
            }
            else
            {
                throw new NegocioExcepcion("Este link ya se utilizó para cambiar su clave.");
            }

            return(Json(true, JsonRequestBehavior.AllowGet));
        }