コード例 #1
0
        public virtual async Task <IActionResult> OnPostAsync()
        {
            var user = await SignInManager.GetTwoFactorAuthenticationUserAsync();

            if (user == null)
            {
                Alerts.Warning("双因素认证失败,用户未登录!");
                return(Page());
            }

            if (SendCodeInput.SelectedProvider == "Authenticator")
            {
                var verifyAuthenticatorCodeInput = new VerifyAuthenticatorCodeInputModel
                {
                    ReturnUrl  = SendCodeInput.ReturnUrl,
                    RememberMe = SendCodeInput.RememberMe
                };
                return(RedirectToPage("VerifyAuthenticatorCode", verifyAuthenticatorCodeInput));
            }

            var code = await UserManager.GenerateTwoFactorTokenAsync(user, SendCodeInput.SelectedProvider);

            if (string.IsNullOrWhiteSpace(code))
            {
                Alerts.Warning("验证码生成失败,请联系系统管理员!");
                return(Page());
            }

            var message = "Your security code is: " + code;

            if (SendCodeInput.SelectedProvider == "Email")
            {
                await EmailSender.SendAsync(await UserManager.GetEmailAsync(user), "Security Code", message);
            }
            else if (SendCodeInput.SelectedProvider == "Phone")
            {
                await SmsSender.SendAsync(await UserManager.GetPhoneNumberAsync(user), message);
            }

            var verifyCodeInput = new VerifyCodeInputModel
            {
                Provider   = SendCodeInput.SelectedProvider,
                ReturnUrl  = SendCodeInput.ReturnUrl,
                RememberMe = SendCodeInput.RememberMe
            };

            return(RedirectToPage("VerifyCode", verifyCodeInput));
        }
コード例 #2
0
        public virtual IActionResult OnGet()
        {
            Input = new VerifyCodeInputModel();

            return(Page());
        }