public async Task <IActionResult> SetPassword(SetPasswordViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var user = await _userManager.GetUserAsync(User); if (user == null) { throw new ApplicationException($"Unable to load user with ID '{_userManager.GetUserId(User)}'."); } var addPasswordResult = await _userManager.AddPasswordAsync(user, model.NewPassword); if (!addPasswordResult.Succeeded) { AddErrors(addPasswordResult); return(View(model)); } await _signInManager.SignInAsync(user, isPersistent : false); StatusMessage = "Your password has been set."; return(RedirectToAction(nameof(SetPassword))); }