public override Task <bool> CheckPasswordAsync(ApplicationUser user, string password) { return(user.IsLocal ? base.CheckPasswordAsync(user, password) : HoGentLoginManager.CheckPassword(user.Email, password)); }
public async Task <ActionResult> Login(LoginViewModel model, string returnUrl) { 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 : true); 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: var user = await UserManager.FindByNameAsync(model.Email); if (user == null) { var hogentUser = HoGentLoginManager.Login(model.Email, model.Password).Result; if (hogentUser.HasValue) { var hogentIdentity = hogentUser.Value; user = new ApplicationUser() { Base64Photo = hogentIdentity.Base64Foto, Email = hogentIdentity.Email, Faculty = hogentIdentity.Faculteit, FirstName = hogentIdentity.Voornaam, LastName = hogentIdentity.Naam, UserName = hogentIdentity.Email }; switch (hogentIdentity.Type.ToLower()) { case "personeel": user.Type = Type.Staff; break; case "student": user.Type = Type.Student; break; default: ModelState.AddModelError("", "De aanmeldingsgegevens zijn correct maar het type van uw account is niet bekend. Gelieve contact op te nemen met de ontwerpers van deze applicatie"); return(View(model)); } var identityCreationResult = UserManager.Create(user); if (identityCreationResult.Succeeded) { await SignInManager.SignInAsync(user, false, model.RememberMe); return(RedirectToLocal(returnUrl)); } ModelState.AddModelError("", string.Join(", ", identityCreationResult.Errors)); } } goto default; default: ModelState.AddModelError("", "Uw logingegevens zijn niet correct."); return(View(model)); } }