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)); }