public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } var user = await UserManager.FindByNameAsync(model.Email); if (user != null) { var validPass = await UserManager.CheckPasswordAsync(user, model.Password); if (validPass) { if (!await UserManager.IsEmailConfirmedAsync(user.Id)) { string callbackUrl = await SendEmailConfirmationTokenAsync(user.Id, "Подтверждение аккаунта - новое"); ViewBag.errorMessage = "Вы должны подтвердить свой аккаунт, чтобы войти !"; return View("Error"); } } } // Сбои при входе не приводят к блокированию учетной записи // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на 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> Mauth(LoginViewModel model, string returnUrl) { System.Threading.Thread.Sleep(500); if (!ModelState.IsValid) { return Json(new { type = "error", message = "ошибка, некорректные данные!" }); } var user = await UserManager.FindByEmailAsync(model.Email); if (user != null) { var validPass = await UserManager.CheckPasswordAsync(user, model.Password); if (validPass) { if (!await UserManager.IsEmailConfirmedAsync(user.Id)) { string callbackUrl = await SendEmailConfirmationTokenAsync(user.Id, "Подтверждение аккаунта - новое"); return Json(new { type = "error", message = "Неводтвержденный аккаунт, проверьте почту и активируйте аккаунт !" }); } } } // Сбои при входе не приводят к блокированию учетной записи // Чтобы ошибки при вводе пароля инициировали блокирование учетной записи, замените на shouldLockout: true var result = await SignInManager.PasswordSignInAsync(user.UserName, model.Password, model.RememberMe, shouldLockout: false); switch (result) { case SignInStatus.Success: return Json(new { type = "success", username = user.UserName }); //RedirectToLocal(returnUrl); case SignInStatus.LockedOut: return Json(' '); //View("Lockout"); case SignInStatus.RequiresVerification: return Json(' '); //RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); case SignInStatus.Failure: default: return Json(new { type = "error", message = "Неудачная попытка входа." }); //View(model); } }