public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View(model);
            }
            var user = await UserManager.FindByNameAsync(model.Email);
            if (user == null)
            {
                // Don't reveal that the user does not exist
                return RedirectToAction("ResetPasswordConfirmation", "Account");
            }

            SHA256PasswordHasher hasher = new SHA256PasswordHasher();
            if(hasher.VerifyHashedPassword(user.TempPassword,model.TemporaryPassword) == PasswordVerificationResult.Failed)
            {
                return View();
            }

            var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);
            if (result.Succeeded)
            {
                user = db.Users.Find(user.Id);
                user.TempPassword = null;
                db.Entry(user).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("ResetPasswordConfirmation", "Account");
            }
            AddErrors(result);
            return View();
        }
Esempio n. 2
0
 public async Task<ActionResult> ResetPassword(ResetPasswordViewModel model)
 {
     if (!ModelState.IsValid)
     {
         return View(model);
     }
     var user = await UserManager.FindByNameAsync(model.Email);
     if (user == null)
     {
         // Don't reveal that the user does not exist
         return RedirectToAction("ResetPasswordConfirmation", "Account");
     }
     var result = await UserManager.ResetPasswordAsync(user.Id, model.Code, model.Password);
     if (result.Succeeded)
     {
         return RedirectToAction("ResetPasswordConfirmation", "Account");
     }
     AddErrors(result);
     return View();
 }
        public ActionResult ResetPassword(string UserId, string code)
        {
            if (string.IsNullOrWhiteSpace(UserId) || string.IsNullOrWhiteSpace(code))
                return View("Error");

            User user = UserManager.FindById(UserId);
            if(user == null)
                return View("Error");

            var resetPasswordViewModel = new ResetPasswordViewModel
            {
                Email = user.UserName,
                Code = code
            };

            return View(resetPasswordViewModel);
        }