public async Task <IActionResult> SendCode(SendCode model, string returnTo) { if (!ModelState.IsValid) { return(View(model)); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(View("Error")); } var code = await _userManager.GenerateTwoFactorTokenAsync(user, model.SelectedProvider); if (string.IsNullOrEmpty(code)) { return(View("Error")); } var message = $"Confirm Code: {code}"; if (model.SelectedProvider == "Email") { await _emailSender.SendEmailAsync(user.Email, "Confirm Code", message); } else if (model.SelectedProvider == "Phone") { await _smsSender.SendSmsAsync(user.PhoneNumber, message); } return(RedirectToRoute("GetVerifyCode", new { returnTo, rememberMe = model.RememberMe, provider = model.SelectedProvider })); }
public async Task <IActionResult> OnPostAsync(bool returnTo) { if (!ModelState.IsValid) { return(Page()); } var user = await _signInManager.GetTwoFactorAuthenticationUserAsync(); if (user == null) { return(RedirectToPage("/Error")); } var code = await _userManager.GenerateTwoFactorTokenAsync(user, SendCode.SelectedProvider); if (string.IsNullOrEmpty(code)) { return(RedirectToPage("/Error")); } var message = $"Confirm Code: {code}"; if (SendCode.SelectedProvider == "Email") { await _emailSender.SendEmailAsync(user.Email, "Confirm Code", message); } else if (SendCode.SelectedProvider == "Phone") { await _smsSender.SendSmsAsync(user.PhoneNumber, message); } return(RedirectToPage("verifyCode", new { returnTo = returnTo, rememberMe = SendCode.RememberMe, provider = SendCode.SelectedProvider, })); }
public async Task <ActionResult> VerifyCode(string provider, string returnUrl) { // Require that the user has already logged in via username/password or external login if (!await SignInHelper.HasBeenVerified()) { return(View("Error", new string[] { "Не сте влезли в системата!" })); } var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());//await SignInHelper.GetVerifiedUserIdAsync()); if (user != null) { // To exercise the flow without actually sending codes, uncomment the following line ViewBag.Status = "For DEMO purposes the current " + provider + " code is: " + await UserManager.GenerateTwoFactorTokenAsync(user.Id, provider); } return(View(new VerifyCodeViewModel { Provider = provider, ReturnUrl = returnUrl })); }