public ActionResult ChangePassword() { int userId = CurrentHttpContext.User.Id; var user = db.Usuarios.Find(userId); if (user == null) { return HttpNotFound(); } var changePasswordModel = new ChangeLoginPasswordModel() { USUUsuario = user.USUUsuario }; return View(changePasswordModel); }
public ActionResult ChangePassword(ChangeLoginPasswordModel changePasswordModel) { if (ModelState.IsValid) { int userId = CurrentHttpContext.User.Id; var user = db.Usuarios.Find(userId); if (user == null) { return HttpNotFound(); } if (user.USUClave != Encryption.Rijndael.Encrypt(changePasswordModel.OldPassword)) ModelState["OldPassword"].Errors.Add("La contraseña actual no es valida"); else if (user.USUClave == Encryption.Rijndael.Encrypt(changePasswordModel.CompareNewPassword)) ModelState["NewPassword"].Errors.Add("La contraseña actual no puede ser igual a la nueva"); else { bool update = db.UPDATE_UsuarioClave(userId, Encryption.Rijndael.Encrypt(changePasswordModel.NewPassword), userId, DateTime.Now, false) > 0; if (update) { CurrentHttpContext.User.NeedChangePassword = false; return RedirectToAction("Index", "Home"); } else ModelState.AddModelError("","No se ha logrado cambiar la contraseña, favor intente de nuevo mas tarde."); } } return View(changePasswordModel); }