public ActionResult Manage(LocalPasswordModel model) { bool hasLocalAccount = OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name)); ViewBag.HasLocalPassword = hasLocalAccount; ViewBag.ReturnUrl = Url.Action("Manage"); if (ModelState.IsValid) { // ChangePassword will throw an exception rather than return false in certain failure scenarios. bool changePasswordSucceeded; try { changePasswordSucceeded = WebSecurity.ChangePassword(User.Identity.Name, model.OldPassword, model.NewPassword); } catch (Exception) { changePasswordSucceeded = false; } // update the fields var curUser = (from u in db.UserProfiles where u.UserName == User.Identity.Name select u).Single(); var user = db.UserProfiles.Find(curUser.UserId); user.Email = model.Email; user.Phone = model.Phone; user.FullName = model.FullName; db.Entry(user).State = EntityState.Modified; db.SaveChanges(); if (changePasswordSucceeded) { return RedirectToAction("Manage", new { Message = ManageMessageId.ChangePasswordSuccess }); } else { ModelState.AddModelError("", "The current password is incorrect or the new password is invalid."); } } // If we got this far, something failed, redisplay form return View(model); }
// // GET: /Account/Manage public ActionResult Manage(ManageMessageId? message) { ViewBag.StatusMessage = message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed." : ""; ViewBag.HasLocalPassword = OAuthWebSecurity.HasLocalAccount(WebSecurity.GetUserId(User.Identity.Name)); ViewBag.ReturnUrl = Url.Action("Manage"); var curUser = (from u in db.UserProfiles where u.UserName == User.Identity.Name select u).Single(); var profile = db.UserProfiles.Find(curUser.UserId); var model = new LocalPasswordModel { Email = profile.Email, Phone = profile.Phone, FullName = profile.FullName }; return View(model); }