public async Task <IActionResult> ChangePassword() { var user = await _userManager.FindByEmailAsync(User.Identity.Name); if (user == null) { return(NotFound()); } ViewModels.ChangePassword model = new ViewModels.ChangePassword { Id = user.Id, Email = user.Email }; return(View(model)); }
public async Task <ActionResult> ResetPassword(ViewModels.ChangePassword changePassword) { if (Session["UserID"] == null) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { int ShopID = int.Parse(Session["UserID"].ToString()); var shop = await db.POS_Shop.Where(w => w.ShopID == ShopID).FirstOrDefaultAsync(); shop.ShopPassword = Utilities.MD5(changePassword.Password); db.POS_Shop.Attach(shop); db.Entry(shop).Property(x => x.ShopPassword).IsModified = true; await db.SaveChangesAsync(); return(View("PasswordChanged")); } return(View()); }
public async Task <IActionResult> ChangePassword(ViewModels.ChangePassword model) { if (ModelState.IsValid) { User user = await _userManager.FindByIdAsync(model.Id); if (user != null) { var _passwordValidator = HttpContext.RequestServices.GetService(typeof(IPasswordValidator <User>)) as IPasswordValidator <User>; var _passwordHasher = HttpContext.RequestServices.GetService(typeof(IPasswordHasher <User>)) as IPasswordHasher <User>; IdentityResult result = await _passwordValidator.ValidateAsync(_userManager, user, model.NewPassword); if (result.Succeeded) { user.PasswordHash = _passwordHasher.HashPassword(user, model.NewPassword); await _userManager.UpdateAsync(user); return(RedirectToAction("Info")); } else { foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } } else { ModelState.AddModelError(string.Empty, "Пользователь не найден"); } } return(View(model)); }