public ActionResult Password(UserPassword userPassword) { //Retrieve current user User user; try { user = db.User.Find(userId); } catch (Exception ex) { return RedirectToAction("Error", "Home", new Error("User", "Password", ex.Message + ex.InnerException.Message)); } if (user == null) return RedirectToAction("Error", "Home", new Error("User", "Password", Resources.Msg_error_db_user)); //Control current password if (user.Password != Convert.ToBase64String(new MD5CryptoServiceProvider().ComputeHash(new UTF8Encoding().GetBytes(userPassword.OldPassword ?? "")))) { ModelState.AddModelError("OldPassword", Resources.Error_wrong_password); return View(userPassword); } //Save updated password to database user.Password = Convert.ToBase64String(new MD5CryptoServiceProvider().ComputeHash(new UTF8Encoding().GetBytes(userPassword.Password))); try { db.SaveChanges(); } catch (Exception ex) { return RedirectToAction("Error", "Home", new Error("User", "Password", ex.Message + (ex.InnerException != null ? ex.InnerException.Message : ""))); } //Confirm password update to user return RedirectToAction("PasswordUpdated"); }
//Change password public ActionResult Password() { User user; try { user = db.User.Find(userId); } catch( Exception ex) { return RedirectToAction("Error", "Home", new Error("User", "Password", ex.Message + ex.InnerException.Message)); } if (user == null) return RedirectToAction("Error", "Home", new Error("User", "Password", Resources.Msg_error_db_user)); UserPassword userPassword = new UserPassword(); userPassword.Id = user.Id; userPassword.Account = user.Account; return View(userPassword); }