示例#1
0
        public async Task<IActionResult> SendCode(SendCodeViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return View();
            }

            var user = await _signInManager.GetTwoFactorAuthenticationUserAsync();
            if (user == null)
            {
                return View("Error");
            }

            // Generate the token and send it
            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.SendSmsAsync(await _userManager.GetPhoneNumberAsync(user), message);
            }

            return RedirectToAction(nameof(VerifyCode), new { Provider = model.SelectedProvider, ReturnUrl = model.ReturnUrl, RememberMe = model.RememberMe });
        }
示例#2
0
 public async Task<ActionResult> SendCode(string returnUrl = null, bool rememberMe = false)
 {
     var user = await _signInManager.GetTwoFactorAuthenticationUserAsync();
     if (user == null)
     {
         return View("Error");
     }
     var userFactors = await _userManager.GetValidTwoFactorProvidersAsync(user);
     var factorOptions = userFactors.Select(purpose => new SelectListItem { Text = purpose, Value = purpose }).ToList();
     SendCodeViewModel sendCodeViewModel = new SendCodeViewModel
     {
         Providers = factorOptions,
         ReturnUrl = returnUrl,
         RememberMe = rememberMe
     };
     return View(sendCodeViewModel);
 }