public async Task <IActionResult> LoginTwoStep(TwoStepModel twoStepModel, string returnUrl, string email) { if (!ModelState.IsValid) { return(View(twoStepModel)); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(RedirectToAction(nameof(Error), new { returnUrl })); } var result = await _signInManager.TwoFactorSignInAsync("Email", twoStepModel.TwoFactorCode, twoStepModel.RememberLogin, rememberClient : false); if (result.Succeeded) { return(this.LoadingPage("Redirect", returnUrl)); } else if (result.IsLockedOut) { await HandleLockout(email, returnUrl); return(View(twoStepModel)); } else { return(RedirectToAction(nameof(Error), new { returnUrl })); } }
public async Task <IActionResult> LoginTwoStep(TwoStepModel twoStepModel, string returnUrl = null) { if (!ModelState.IsValid) { return(View(twoStepModel)); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(RedirectToAction(nameof(Error))); } var result = await _signInManager.TwoFactorSignInAsync("Email", twoStepModel.TwoFactorCode, twoStepModel.RememberMe, rememberClient : false); if (result.Succeeded) { return(RedirectToLocal(returnUrl)); } else if (result.IsLockedOut) { //Same logic as in the Login action ModelState.AddModelError("", "The account is locked out"); return(View()); } else { ModelState.AddModelError("", "Invalid Login Attempt"); return(View()); } }
public async Task <IActionResult> LoginTwoStep(TwoStepModel twoStepModel, string returnUrl = null) { if (!ModelState.IsValid) { return(View(model: twoStepModel)); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(RedirectToAction(actionName: nameof(Error))); } var result = await _signInManager.TwoFactorSignInAsync(provider : "Email", code : twoStepModel.TwoFactorCode, isPersistent : twoStepModel.RememberMe, rememberClient : false); if (result.Succeeded) { return(RedirectToLocal(returnUrl: returnUrl)); } if (result.IsLockedOut) { //TODO: Same logic as in the Login action ModelState.AddModelError(key: "", errorMessage: "The account is locked out"); return(View()); } ModelState.AddModelError(key: "", errorMessage: "Invalid Login Attempt"); return(View()); }
public async Task <IActionResult> LoginTwoStep(TwoStepModel model) { if (!ModelState.IsValid) { return(View()); } var user = await _signManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(View("Error")); } var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrWhiteSpace(code)) { return(View("Error")); } var message = "Your security code is: " + code; if (model.SelectedProvider == "Email") { await _emailSender.SendEmailAsync(await _userManager.GetEmailAsync(user), "Security Code", message); } else if (model.SelectedProvider == "Phone") { await _sMSSender.SendSms(await _userManager.GetPhoneNumberAsync(user), message); } return(RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe })); }
public async Task <IActionResult> LoginTwoStep(bool rememberMe, string returnUrl = "") { ViewData["ReturnUrl"] = returnUrl; var user = await _signManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(NotFound()); } var userFactors = await _userManager.GetValidTwoFactorProvidersAsync(user); var factorOptions = userFactors.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }).ToList(); var model = new TwoStepModel { Providers = factorOptions, ReturnUrl = returnUrl, RememberMe = rememberMe }; return(View(model)); }
public async Task <IActionResult> LoginTwoStep(TwoStepModel twoStepModel, string returnUrl = null) { if (!ModelState.IsValid) { return(View(twoStepModel)); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user is null) { return(RedirectToAction(nameof(Error))); } var result = await _signInManager.TwoFactorSignInAsync("Email", twoStepModel.TwoFactorCode, twoStepModel.RememberMe, rememberClient : false); if (result.Succeeded) { return(RedirectToLocal(returnUrl)); } if (result.IsLockedOut) { var forgotPasswordLink = Url.Action(nameof(ForgotPassword), "Account", new { }, Request.Scheme); var message = $"Your account is locked out, to reset your password, please click this link: {forgotPasswordLink}"; await _emailSender.SendEmailAsync(user.Email, "Locked out account information", message); ModelState.AddModelError("", "The account is locked out"); return(View()); } ModelState.AddModelError("", "Invalid login attempt"); return(View()); }
public async Task <IActionResult> LoginTwoStep(TwoStepModel twoStepModel, string returnUrl = null) { return(View()); }