Esempio n. 1
0
        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
            }));
        }
Esempio n. 2
0
        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
            }));
        }