예제 #1
0
 /// <summary>
 /// 发送验证码前检查
 /// </summary>
 /// <param name="input"></param>
 /// <returns></returns>
 private async Task PreSendCodeCheck(CodeSendInput input)
 {
     if (SettingManager.GetSettingValueForApplication <bool>(AppSettings.SMSManagement.UseCaptchaToVerification))
     {
         await _captchaValidator.ValidateAsync(input.CaptchaResponse);
     }
 }
예제 #2
0
        /// <summary>
        /// 检查验证码
        /// </summary>
        /// <returns></returns>
        private async Task CheckCaptcha(RegisterTenantInput input)
        {
            var useCaptchaOnRegistration = SettingManager.GetSettingValueForApplication <bool>(AppSettings.TenantManagement.UseCaptchaOnRegistration);

            if (DebugHelper.IsDebug)
            {
                useCaptchaOnRegistration = false;
            }

            if (!useCaptchaOnRegistration)
            {
                return;
            }

            await _captchaValidator.ValidateAsync(input.CaptchaResponse);
        }
예제 #3
0
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");

            if (ModelState.IsValid)
            {
                if (!await _captchaValidator.ValidateAsync(Input.Captcha))
                {
                    ModelState.AddModelError(nameof(InputModel.Captcha), "Invalid captcha.");
                    return(Page());
                }

                // This doesn't count login failures towards account lockout
                // To enable password failures to trigger account lockout, set lockoutOnFailure: true
                Microsoft.AspNetCore.Identity.SignInResult result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure : true);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User logged in.");
                    return(LocalRedirect(returnUrl));
                }
                if (result.RequiresTwoFactor)
                {
                    return(RedirectToPage("./LoginWith2fa", new { ReturnUrl = returnUrl, Input.RememberMe }));
                }
                if (result.IsLockedOut)
                {
                    _logger.LogWarning("User account locked out.");
                    return(RedirectToPage("./Lockout"));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "Invalid login attempt.");
                    return(Page());
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }