public ActionResult Edit(UserViewModel model) { using (var userStore = new CmsUserStore()) using (var userManager = new CmsUserManager(userStore)) { var user = userStore.FindByNameAsync(model.UserName).Result; if (user == null) { return HttpNotFound(); } if (!ModelState.IsValid) { return View(model); } if (!string.IsNullOrWhiteSpace(model.NewPassword)) { if (string.IsNullOrWhiteSpace(model.CurrentPassword)) { ModelState.AddModelError(string.Empty, "The current password must be supplied"); return View(model); } var passwordVerified = userManager.PasswordHasher.VerifyHashedPassword(user.PasswordHash, model.CurrentPassword); if (passwordVerified != Microsoft.AspNet.Identity.PasswordVerificationResult.Success) { ModelState.AddModelError(string.Empty, "The current password does not match!"); return View(model); } var newHashedPassword = userManager.PasswordHasher.HashPassword(model.NewPassword); user.PasswordHash = newHashedPassword; } user.Email = model.Email; user.Displayname = model.DisplayName; var updateResult = userManager.UpdateAsync(user).Result; if (updateResult.Succeeded) { return RedirectToAction("index"); } else { ModelState.AddModelError(string.Empty, "An error occured. Please try again"); return View(model); } } }
public ActionResult Edit(string username) { using (var userStore = new CmsUserStore()) using (var userManager = new CmsUserManager(userStore)) { var user = userStore.FindByNameAsync(username).Result; if (user == null) { return HttpNotFound(); } var viewModel = new UserViewModel { UserName = user.UserName, Email = user.Email }; return View(viewModel); } }