public async Task <IdentityResult> UpdateUserAsync(Guid userId, string username = null, string password = null, string email = null, string phoneNumber = null) { var result = new IdentityResult(); var user = GetUser(userId); if (!string.IsNullOrWhiteSpace(username)) { result = await uM.SetUserNameAsync(user, username); if (!result.Succeeded) { return(result); } } if (!string.IsNullOrWhiteSpace(password)) { result = await uM.RemovePasswordAsync(user); if (!result.Succeeded) { return(result); } result = await uM.AddPasswordAsync(user, password); } if (!string.IsNullOrWhiteSpace(email)) { result = await uM.SetEmailAsync(user, email); if (!result.Succeeded) { return(result); } } if (!string.IsNullOrWhiteSpace(phoneNumber)) { result = await uM.SetPhoneNumberAsync(user, phoneNumber); if (!result.Succeeded) { return(result); } } return(result); }
public async Task <ActionResult> SetPassword(SetPasswordViewModel model) { if (ModelState.IsValid) { var result = await UserManager.AddPasswordAsync(User.Identity.GetUserId(), model.NewPassword); if (result.Succeeded) { var user = await UserManager.FindByIdAsync(User.Identity.GetUserId()); if (user != null) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); } return(RedirectToAction("Index", new { Message = ManageMessageId.SetPasswordSuccess })); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public async Task <ActionResult> ResetPassword(ResetPasswordInputModel model) { //model.OldPassword = ""; #if DEBUG Debug.WriteLine("UserName="******"Password="******"ConfirmPassword="******"OldPassword="******"Id=" + model.Id.ToString()); #endif if (ModelState.IsValid) { #if DEBUG Debug.WriteLine("Model is valid"); #endif var user = await _userManager.FindByNameAsync(model.UserName); if (user != null) { #if DEBUG Debug.WriteLine("user is not null"); #endif /* * var checkOldPassword =await _userManager.CheckPasswordAsync(user, model.OldPassword); * * if (checkOldPassword) * { */ var result = await _userManager.RemovePasswordAsync(user.UserID); if (result.Succeeded) { #if DEBUG Debug.WriteLine("Password is removed to succeeded"); #endif var result2 = await _userManager.AddPasswordAsync(user.UserID, model.Password); if (result2.Succeeded) { #if DEBUG Debug.WriteLine("Password is added to succeeded"); #endif var result3 = await _userManager.SetSigninEndDateAsync(user); #if DEBUG if (result3) { Debug.WriteLine("SetSigninEndDateAsync is well done"); } #endif var result4 = await _userManager.ResetAccessFailedCountAsync(user.UserID); #if DEBUG if (result4.Succeeded) { Debug.WriteLine("ResetAccessFailedCountAsync is executed."); } #endif /* * result4 = await _userManager.SetChangePasswordEndDateAsync(user); #if DEBUG * if (result4.Succeeded) * { * Debug.WriteLine("SetChangePasswordEndDateAsync is executed."); * } #endif * * result4 = await _userManager.SetPasswordEnabledAsync(user, false); #if DEBUG * if (result4.Succeeded) * { * Debug.WriteLine("SetPasswordEnabledAsync is executed."); * } #endif */ return(RedirectToAction("List")); } } // } /* else * { * // Активизирована ли функция блокировки учётки в системе * if (_userManager.LockoutEnabled) * { * #if DEBUG * Debug.WriteLine("++++ GetLockoutEnabledAsync is enabled"); #endif * // Увелечение счётчика неудачных попыток ввода пароля * if (await _userManager.AccessFailedAsync(user.UserID) == IdentityResult.Success) * { #if DEBUG * Debug.WriteLine("~~~ AccessFailedAsync is working!"); #endif * if (await _userManager.IsLockedOutAsync(user.UserID)) * { #if DEBUG * Debug.WriteLine("Account is locked out!"); #endif * //Заблокировать учётку * return View("Lockout"); * } * * * } * * * } * * } */ } } #if DEBUG Debug.WriteLine("Error is occured in ResetPassword"); #endif return(View(model)); }
public async Task <ActionResult> Manage(ManageUserViewModel model) { var hasPassword = HasPassword(); ViewBag.HasLocalPassword = hasPassword; ViewBag.ReturnUrl = Url.Action("Manage"); if (hasPassword) { if (ModelState.IsValid) { User _ObjUser = await cms_db.GetObjUserById(long.Parse(User.Identity.GetUserId())); // _ObjUser.FullName = model.FullName; int _rs = await cms_db.UpdateUser(_ObjUser); var result = await UserManager.ChangePasswordAsync(long.Parse(User.Identity.GetUserId()), model.OldPassword, model.NewPassword); if (result.Succeeded) { int ach = await cms_db.CreateUserHistory(_ObjUser.Id, Request.ServerVariables["REMOTE_ADDR"], (int)EnumCore.ActionType.Login, "ChangePasswor", 0, model.Email, "User", (int)EnumCore.ObjTypeId.nguoi_dung); var user = await UserManager.FindByIdAsync(long.Parse(User.Identity.GetUserId())); await SignInAsync(user, false); return(RedirectToAction( "Manage", new { Message = ManageMessageId.ChangePasswordSuccess })); } AddErrors(result); } } else { // User does not have a password so remove any validation errors caused by a missing OldPassword field var state = ModelState["OldPassword"]; if (state != null) { state.Errors.Clear(); } if (ModelState.IsValid) { var result = await UserManager.AddPasswordAsync(long.Parse(User.Identity.GetUserId()), model.NewPassword); if (result.Succeeded) { return(RedirectToAction( "Manage", new { Message = ManageMessageId.SetPasswordSuccess })); } AddErrors(result); } } // If we got this far, something failed, redisplay form return(View(model)); }