public async Task <IActionResult> SetPassword() { var user = await this.userManager.GetUserAsync(this.User); if (user == null) { return(this.NotFound()); } if (await this.userManager.HasPasswordAsync(user)) { return(this.RedirectToAction("ChangePassword")); } var model = new UserSetPasswordBindingModel { Email = user.Email }; return(this.View(model)); }
public async Task <IActionResult> SetPassword(UserSetPasswordBindingModel model) { if (!this.ModelState.IsValid) { return(this.RedirectToAction("SetPassword")); } var user = await this.userManager.GetUserAsync(this.User); if (user == null) { return(this.NotFound()); } if (await this.userManager.HasPasswordAsync(user)) { return(this.RedirectToAction("ChangePassword")); } var changePasswordResult = await this.userManager.AddPasswordAsync(user, model.NewPassword); if (!changePasswordResult.Succeeded) { foreach (var error in changePasswordResult.Errors) { this.ModelState.AddModelError(string.Empty, error.Description); } model.Email = user.Email; return(this.View(model)); } this.Success(NotificationMessages.PasswordSet); return(this.LocalRedirect("/")); }