From 2d5f268549575a0b0d9be358fe6e2b80794a7f90 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 17 Apr 2017 21:01:59 -0400 Subject: [PATCH] fix login password check bug --- .../Controllers/AccountController.cs | 43 +++++++++++-------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/Project-Unite/Controllers/AccountController.cs b/Project-Unite/Controllers/AccountController.cs index 729bcec..2251fc0 100644 --- a/Project-Unite/Controllers/AccountController.cs +++ b/Project-Unite/Controllers/AccountController.cs @@ -95,26 +95,33 @@ public ActionResult Login(string returnUrl) [ValidateAntiForgeryToken] public async Task Login(LoginViewModel model, string returnUrl) { - if (!ModelState.IsValid) + try { - return View(model); - } - - // This doesn't count login failures towards account lockout - // To enable password failures to trigger account lockout, change to shouldLockout: true - var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); - switch (result) - { - case SignInStatus.Success: - return RedirectToLocal(returnUrl); - case SignInStatus.LockedOut: - return View("Lockout"); - case SignInStatus.RequiresVerification: - return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); - case SignInStatus.Failure: - default: - ModelState.AddModelError("", "Invalid login attempt."); + if (!ModelState.IsValid) + { return View(model); + } + + // This doesn't count login failures towards account lockout + // To enable password failures to trigger account lockout, change to shouldLockout: true + var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); + switch (result) + { + case SignInStatus.Success: + return RedirectToLocal(returnUrl); + case SignInStatus.LockedOut: + return View("Lockout"); + case SignInStatus.RequiresVerification: + return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); + case SignInStatus.Failure: + default: + ModelState.AddModelError("", "Invalid login attempt."); + return View(model); + } + } + catch + { + ModelState.AddModelError("Password", new Exception("An error occurred while verifying your password. Possible cause: If you are a user from before the website was revamped, you don't have a usable password. Please reset it, otherwise you won't be able to log in.")); } }