public async Task<ActionResult> ChangeAccountInfo(ChangeAccountInfoModel model, string returnUrl) { if (ModelState.IsValid) { ApplicationUser user = new ApplicationUser { FirstName = model.FirstName, LastName = model.LastName }; if (!string.IsNullOrEmpty(model.Email)) user.Email = model.Email; await MembershipContext.ChangeAccountInfo(User.Identity.GetUserId(), user); } if (string.IsNullOrEmpty(returnUrl)) return RedirectToAction("Index", "Home"); else return Redirect(returnUrl); }
public async Task<ActionResult> ChangePassword(ChangeAccountInfoModel model, string returnUrl) { bool hasPassword = HasPassword(); ViewBag.HasLocalPassword = hasPassword; ViewBag.ReturnUrl = string.IsNullOrEmpty(returnUrl) ? Url.Action("ChangeAccountInfo") : returnUrl; if (hasPassword) { if (ModelState.IsValid) { IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.Password); if (result.Succeeded) { return RedirectToAction("ChangeAccountInfo", new { returnUrl = ViewBag.ReturnUrl, Message = ManageMessageId.ChangePasswordSuccess }); } else { AddErrors(result); } } } else { // User does not have a password so remove any validation errors caused by a missing OldPassword field ModelState state = ModelState["OldPassword"]; if (state != null) { state.Errors.Clear(); } if (ModelState.IsValid) { IdentityResult result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.Password); if (result.Succeeded) { return RedirectToAction("ChangeAccountInfo", new { returnUrl = ViewBag.ReturnUrl, Message = ManageMessageId.SetPasswordSuccess }); } else { AddErrors(result); } } } // If we got this far, something failed, redisplay form return View(model); }
public async Task<ActionResult> ChangeAccountInfo(string returnUrl, ManageMessageId? message) { ViewBag.StatusMessage = message == ManageMessageId.ChangePasswordSuccess ? ResourceUtils.GetString("9bc75a1c6d94e70e8b96d8d59115c0c0", "Your password has been changed.") : message == ManageMessageId.SetPasswordSuccess ? ResourceUtils.GetString("9ad4e391b8ba2faf5177dcfa6dcee143", "Your password has been set.") : message == ManageMessageId.RemoveLoginSuccess ? ResourceUtils.GetString("9d813b903dbe8155105d3b5c4e6a04ed", "The external login was removed.") : message == ManageMessageId.Error ? ResourceUtils.GetString("c69732cc923305ac0684ac8fc05a4bcb", "An error has occurred.") : ""; ViewBag.HasLocalPassword = HasPassword(); ViewBag.ReturnUrl = string.IsNullOrEmpty(returnUrl) ? Url.Action("ChangeAccountInfo") : returnUrl; ChangeAccountInfoModel model = new ChangeAccountInfoModel(); UserServiceProxy usvc = new UserServiceProxy(); var cntx = Startup.ClientContext.CreateCopy(); cntx.DirectDataAccess = true; var u = await usvc.LoadEntityByKeyAsync(cntx, User.Identity.GetUserId()); model.FirstName = u.FirstName; model.LastName = u.LastName; var ci = User.Identity as System.Security.Claims.ClaimsIdentity; model.Email = (from d in ci.Claims where d.Type == Microsoft.IdentityModel.Claims.ClaimTypes.Email select d.Value).SingleOrDefault(); return View(model); }