public async Task<ActionResult> Index(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: false); switch(result) { case SignInStatus.Success: return RedirectToAction("RedirectUser", "Home"); 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); } }
public ActionResult Login(LoginViewModel model) { if (model.Login == "admin" && model.Password == "pass") { Authentication.SignOut(DefaultAuthenticationTypes.ExternalCookie); var claims = new[] { new Claim(ClaimTypes.Name, model.Login) }; var claimsIdentity = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie); Authentication.SignIn(new AuthenticationProperties() { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddDays(1) }, claimsIdentity); return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("", "Неправильний пароль або ім'я користувача"); } return View(model); }
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: false); var user = userRepository.GetByName(model.Email); PasswordVerificationResult result; if (user != null) { result = passwordHasher.VerifyHashedPassword(user.PasswordHash, model.Password); if (result == PasswordVerificationResult.Success || result == PasswordVerificationResult.SuccessRehashNeeded) { FormsAuthentication.SetAuthCookie(model.Email, model.RememberMe); return RedirectToLocal(returnUrl); } else { ModelState.AddModelError("", "Invalid login attempt."); return View(model); } } else { ModelState.AddModelError("", "Invalid login attempt."); return View(model); } }
//Todo: Verify errors are acceptable to display to user //Todo: Validate or improve error messages public async Task<ActionResult> Login(LoginViewModel model) { if (!ModelState.IsValid) { return View(model); } var appUserService = new ApplicationUserDataService(); var userResult = await appUserService.GetByUserNameAsync(model.UserName); if (!userResult.IsSuccessful) { ModelState.AddModelError("", "An error occurred with the login username/password"); return View(model); } var user = userResult.Data; Session[SessionIdKey] = Session.SessionID; var sessionId = Session[SessionIdKey].ToString(); var loginInfoService = new LoginInfoDataService(); var checkIfLoggedInElsewhereResult = loginInfoService.IsUserLoggedInElsewhere(user.Id, sessionId); if (!checkIfLoggedInElsewhereResult.IsSuccessful) { ModelState.AddModelError("LoggedInElsewhere","An error occurred while verifying that the user is not logged in elsewhere."); return View(ModelState); } var userIsLoggedInElsewhere = checkIfLoggedInElsewhereResult.Data; if (userIsLoggedInElsewhere) { var logoutUserElsewhereResult = loginInfoService.LogOutUserElsewhere(user.Id); if (!logoutUserElsewhereResult.IsSuccessful) { ModelState.AddModelError("", "An error occurred logged out of your previous session"); return View(model); } } var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false); switch (result) { case SignInStatus.Success: return RedirectToAction("Index", "AngularAccess"); case SignInStatus.Failure: default:ModelState.AddModelError("", "Invalid login attempt."); return View(model); } }
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { // ViewBag.ReturnUrl = 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 user = await UserManager.FindByEmailAsync(model.Email); // var user = UserManager.Find(model.Email, model.Password); if (user != null) { if (!await UserManager.IsEmailConfirmedAsync(user.Id)) { string callbackUrl = await SendEmailConfirmationTokenAsync(user.Id, "Confirm your account-Resend"); ViewBag.errorMessage = "You must have a confirmed email to log on."; return View("Error"); } } 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); } }
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password.EncryptToMD5Hash(), 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("", @"The e-mail and/or password entered is invalid. Please try again."); return View(model); } }
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } // Сбои при входе не приводят к блокированию учетной записи // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на 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("", "Неудачная попытка входа."); return View(model); } }
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } // Ceci ne comptabilise pas les échecs de connexion pour le verrouillage du compte // Pour que les échecs de mot de passe déclenchent le verrouillage du compte, utilisez 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("", "Tentative de connexion non valide."); return View(model); } }
//[ValidateAntiForgeryToken] public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (ModelState.IsValid) { // 这不会计入到为执行帐户锁定而统计的登录失败次数中 // 若要在多次输入错误密码的情况下触发帐户锁定,请更改为 shouldLockout: true var result = await this.SignInManager.PasswordSignInAsync(model.UserID, model.Password, model.RememberMe, shouldLockout: false); switch (result) { case SignInStatus.Success: //return RedirectToLocal(returnUrl); ApplicationUser user = await this.UserManager.FindByNameAsync(model.UserID); return await GetUserInfo(user); case SignInStatus.LockedOut: return View("Lockout"); case SignInStatus.RequiresVerification: return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); case SignInStatus.Failure: default: ModelState.AddModelError("", "无效的登录尝试。"); return View(model); } } return JsonMessage.BadRequestJsonResult(ModelState.Values.SelectMany(x => x.Errors)); }