Exemplo n.º 1
0
 /// <summary>
 /// 执行Action时
 /// </summary>
 /// <param name="filterContext"></param>
 public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     if (CaptchaUtility.UseCaptcha(scenarios, true))
     {
         try
         {
             ICaptchaManager captchaManager = DIContainer.Resolve <ICaptchaManager>();
             Controller      controllerBase = filterContext.Controller as Controller;
             if (!captchaManager.IsCaptchaValid(filterContext))
             {
                 //controllerBase.ModelState.AddModelError("Captcha", CaptchaVerifyError);
                 controllerBase.ViewData["UserLoginStatus"] = UserLoginStatus.CapCode;
             }
             else if (controllerBase.ModelState.IsValid)
             {
                 //表单通过验证时,重设累计次数
                 //CaptchaUtility.ResetLimitTryCount(scenarios);
                 //此处修改成登录成功,重设累计次数
             }
         }
         catch
         {
             throw new Exception("检查验证码时,出现异常");
         }
     }
     base.OnActionExecuting(filterContext);
 }
Exemplo n.º 2
0
        public UserRegistrationManager(
            TenantManager tenantManager,
            UserManager userManager,
            RoleManager roleManager,
            ISmtpEmailSender emailSender,
            IAppNotifier appNotifier,
            ISMSManager smsManager,
            ICacheManager cacheManager,
            ICaptchaManager captchaManager,
            IRepository <ThirdPartyUser, long> thirdPartyUserRepository,
            IPasswordHasher <User> passwordHasher)
        {
            _tenantManager            = tenantManager;
            _userManager              = userManager;
            _roleManager              = roleManager;
            _emailSender              = emailSender;
            _appNotifier              = appNotifier;
            _smsManager               = smsManager;
            _cacheManager             = cacheManager;
            _captchaManager           = captchaManager;
            _thirdPartyUserRepository = thirdPartyUserRepository;
            _passwordHasher           = passwordHasher;

            AbpSession = NullAbpSession.Instance;
        }
Exemplo n.º 3
0
        /// <summary>
        ///     Makes the specified captcha "intelligent".
        /// </summary>
        /// <param name="captchaManager">The specified captcha manager.</param>
        /// <param name="captcha">
        ///     The specified <see cref="ICaptcha" />.
        /// </param>
        /// <param name="parameterContainer">
        ///     The specified <see cref="IParameterContainer" />.
        /// </param>
        /// <returns>
        ///     An instance of <see cref="ICaptcha" />.
        /// </returns>
        public virtual ICaptcha MakeIntelligent(ICaptchaManager captchaManager, ICaptcha captcha, IParameterContainer parameterContainer)
        {
            Validate.ArgumentNotNull(captchaManager, "captchaManager");
            Validate.ArgumentNotNull(captcha, "captcha");
            if (captcha.BuildInfo.HtmlHelper.ViewData[DefaultCaptchaManager.CaptchaNotValidViewDataKey] != null)
            {
                return(captcha);
            }
            var captchaDecorator = captcha as IntelligentCaptchaDecorator;

            if (captchaDecorator != null && captchaDecorator.PolicyType.Equals(PolicyType))
            {
                return(captcha);
            }

            var tokenName = captchaManager.TokenElementName + PolicyType;
            var markup    = new StringBuilder(RenderMarkup(captcha, tokenName));
            var script    = new StringBuilder();

            foreach (IIntelligencePolicy intelligencePolicy in Policies)
            {
                ICaptcha cp = intelligencePolicy.MakeIntelligent(captchaManager, captcha, parameterContainer);
                markup.AppendLine(cp.RenderMarkup().ToHtmlString());
                script.AppendLine(cp.RenderScript().ToHtmlString());
            }
            return(new IntelligentCaptchaDecorator(captcha, captcha1 => markup.ToString(), captcha1 => script.ToString(),
                                                   PolicyType));
        }
Exemplo n.º 4
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="logInManager"></param>
 /// <param name="cacheManager"></param>
 public AccountController(LogInManager logInManager, ICacheManager cacheManager, ICaptchaManager captchaManager)
 {
     _logInManager          = logInManager;
     _cacheManager          = cacheManager;
     _captchaManager        = captchaManager;
     LocalizationSourceName = MFConsts.LocalizationSourceName;
 }
Exemplo n.º 5
0
 /// <summary>
 /// 执行Action时
 /// </summary>
 /// <param name="filterContext"></param>
 public override void OnActionExecuting(ActionExecutingContext filterContext)
 {
     if (CaptchaUtility.UseCaptcha(scenarios, true))
     {
         try
         {
             ICaptchaManager captchaManager = DIContainer.Resolve <ICaptchaManager>();
             ControllerBase  controllerBase = filterContext.Controller;
             if (!captchaManager.IsCaptchaValid(filterContext))
             {
                 controllerBase.ViewData.ModelState.AddModelError("Captcha", CaptchaVerifyError);
             }
             else if (controllerBase.ViewData.ModelState.IsValid)
             {
                 //表单通过验证时,重设计数
                 CaptchaUtility.ResetLimitTryCount(scenarios);
             }
         }
         catch
         {
             throw new ExceptionFacade("检查验证码时,出现异常");
         }
     }
     base.OnActionExecuting(filterContext);
 }
Exemplo n.º 6
0
 public ImageController(ImageDriver handler,
                        IImageProvider imageFileProvider,
                        ICaptchaManager captchaManager,
                        IMemoryCache cache)
 {
     _imageHandler   = handler;
     _imageProvider  = imageFileProvider;
     _memoryCache    = cache;
     _captchaManager = captchaManager;
 }
Exemplo n.º 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="FeedbacksController"/> class.
 /// </summary>
 /// <param name="feedbackService">Instance of the class
 /// that implements IFeedbackService interface.</param>
 /// <param name="userService">Instance of the class
 /// that implements IUserService interface.</param>
 /// <param name="currentUserService">Instance of the class
 /// that implements ICurrentUserService interface.</param>
 /// <param name="captchaManager">Instance of the class
 /// that implements ICaptchaManager interface.</param>
 public FeedbacksController(
     IFeedbackService feedbackService,
     IUserService userService,
     ICurrentUserService currentUserService,
     ICaptchaManager captchaManager)
 {
     _feedbackService    = feedbackService;
     _userService        = userService;
     _currentUserService = currentUserService;
     _captchaManager     = captchaManager;
 }
Exemplo n.º 8
0
        /// <summary>
        /// 输出验证码
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <param name="htmlHelper"></param>
        /// <param name="scenarios">使用场景</param>
        /// <param name="showCaptchaImage">默认是否显示验证码图片(仅针对验证码图片可以不立即显示的情况)</param>
        /// <param name="templateName">模板名称</param>
        /// <returns></returns>
        public static MvcHtmlString Captcha <TModel>(this HtmlHelper <TModel> htmlHelper, VerifyScenarios scenarios = VerifyScenarios.Post, bool showCaptchaImage = false, string templateName = "Captcha")
        {
            if (!CaptchaUtility.UseCaptcha(scenarios))
            {
                return(MvcHtmlString.Empty);
            }
            ICaptchaManager captchaManager = DIContainer.Resolve <ICaptchaManager>();
            MvcHtmlString   captchaText    = captchaManager.GenerateCaptcha(htmlHelper, showCaptchaImage);

            return(htmlHelper.EditorForModel(templateName, new { CaptchaText = captchaText }));
        }
Exemplo n.º 9
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="logInManager"></param>
 /// <param name="cacheManager"></param>
 public SMSLoginController(
     LogInManager logInManager,
     ICacheManager cacheManager,
     ICaptchaManager captchaManager,
     UserManager userManager,
     ISMSManager smsManager
     )
 {
     _logInManager          = logInManager;
     _cacheManager          = cacheManager;
     _captchaManager        = captchaManager;
     LocalizationSourceName = MFConsts.LocalizationSourceName;
     _smsManager            = smsManager;
     _userManager           = userManager;
 }
Exemplo n.º 10
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="userRegistrationManager"></param>
 /// <param name="smsManager"></param>
 /// <param name="loginManager"></param>
 /// <param name="passwordComplexityChecker"></param>
 /// <param name="captchaManager"></param>
 public RegisterAppService(
     UserRegistrationManager userRegistrationManager,
     ISMSManager smsManager,
     LogInManager loginManager,
     PasswordComplexityChecker passwordComplexityChecker,
     ICacheManager cacheManager,
     UserManager userManager,
     ICaptchaManager captchaManager)
 {
     _userRegistrationManager = userRegistrationManager;
     _smsManager   = smsManager;
     _loginManager = loginManager;
     _passwordComplexityChecker = passwordComplexityChecker;
     _cacheManager   = cacheManager;
     _userManager    = userManager;
     _captchaManager = captchaManager;
 }
        /// <summary>
        ///     Makes the specified captcha "intelligent".
        /// </summary>
        /// <param name="captchaManager">The specified captcha manager.</param>
        /// <param name="captcha">
        ///     The specified <see cref="ICaptcha" />.
        /// </param>
        /// <param name="parameterContainer">
        ///     The specified <see cref="IParameterContainer" />.
        /// </param>
        /// <returns>
        ///     An instance of <see cref="ICaptcha" />.
        /// </returns>
        public virtual ICaptcha MakeIntelligent(ICaptchaManager captchaManager, ICaptcha captcha, IParameterContainer parameterContainer)
        {
            Validate.ArgumentNotNull(captchaManager, "captchaManager");
            Validate.ArgumentNotNull(captcha, "captcha");
            if (captcha.BuildInfo.HtmlHelper.ViewData[DefaultCaptchaManager.CaptchaNotValidViewDataKey] != null)
            {
                return(captcha);
            }
            var captchaDecorator = captcha as IntelligentCaptchaDecorator;

            if (captchaDecorator != null && captchaDecorator.PolicyType.Equals(PolicyType))
            {
                return(captcha);
            }
            SaveTokenValue(captcha);
            var tokenName = captchaManager.TokenElementName + PolicyType;

            return(new IntelligentCaptchaDecorator(captcha, c => RenderMarkup(c, tokenName), RenderScript, PolicyType));
        }
        /// <summary>
        ///     Determines whether the intelligent captcha is valid.
        /// </summary>
        /// <param name="captchaManager">The specified captcha manager.</param>
        /// <param name="controller">
        ///     The specified <see cref="ControllerBase" />.
        /// </param>
        /// <param name="parameterContainer">
        ///     The specified <see cref="IParameterContainer" />.
        /// </param>
        /// <returns>
        ///     <c>True</c> if the intelligent captcha is valid; <c>false</c> not valid; <c>null</c> is not intelligent captcha.
        /// </returns>
        public virtual bool?IsValid(ICaptchaManager captchaManager, ControllerBase controller, IParameterContainer parameterContainer)
        {
            Validate.ArgumentNotNull(captchaManager, "captchaManager");
            Validate.ArgumentNotNull(controller, "controller");
            ValueProviderResult tokenValue = controller
                                             .ValueProvider
                                             .GetValue(captchaManager.TokenElementName + PolicyType);

            if (tokenValue == null || string.IsNullOrEmpty(tokenValue.AttemptedValue))
            {
                return(null);
            }
            DateTime?dateTime = GetTokenValue(controller, tokenValue.AttemptedValue);

            if (dateTime == null)
            {
                return(null);
            }
            return(captchaManager.StorageProvider.Remove(tokenValue.AttemptedValue) && DateTime.UtcNow - dateTime.Value > MinResponseTime);
        }
Exemplo n.º 13
0
 public TokenAuthController(
     LogInManager logInManager,
     ITenantCache tenantCache,
     AbpLoginResultTypeHelper abpLoginResultTypeHelper,
     TokenAuthConfiguration configuration,
     IExternalAuthConfiguration externalAuthConfiguration,
     IExternalAuthManager externalAuthManager,
     UserRegistrationManager userRegistrationManager,
     UserManager userManager,
     ICaptchaManager captchaManager)
 {
     _logInManager              = logInManager;
     _tenantCache               = tenantCache;
     _abpLoginResultTypeHelper  = abpLoginResultTypeHelper;
     _configuration             = configuration;
     _externalAuthConfiguration = externalAuthConfiguration;
     _externalAuthManager       = externalAuthManager;
     _userRegistrationManager   = userRegistrationManager;
     _userManager               = userManager;
     _captchaManager            = captchaManager;
 }
Exemplo n.º 14
0
        public AccountController(
            TenantManager tenantManager,
            UserManager userManager,
            RoleManager roleManager,
            IUnitOfWorkManager unitOfWorkManager,
            IMultiTenancyConfig multiTenancyConfig,
            LogInManager logInManager,
            ISessionAppService sessionAppService,
            ILanguageManager languageManager,
            ITenantCache tenantCache,
            ICaptchaManager captchaManager,
            ISettingManager settingManager,
            QQAuthService qqAuthService,
            WeixinAuthService weixinAuthService,
            WeiboAuthService weiboAuthService,
            AlipayAuthService alipayAuthService,
            UserRegistrationManager userRegistrationManager, ICacheManager cacheManager)
        {
            _tenantManager           = tenantManager;
            _userManager             = userManager;
            _roleManager             = roleManager;
            _unitOfWorkManager       = unitOfWorkManager;
            _multiTenancyConfig      = multiTenancyConfig;
            _logInManager            = logInManager;
            _sessionAppService       = sessionAppService;
            _languageManager         = languageManager;
            _tenantCache             = tenantCache;
            _captchaManager          = captchaManager;
            _settingManager          = settingManager;
            _qqAuthService           = qqAuthService;
            _weixinAuthService       = weixinAuthService;
            _weiboAuthService        = weiboAuthService;
            _alipayAuthService       = alipayAuthService;
            _userRegistrationManager = userRegistrationManager;
            _cacheManager            = cacheManager;

            Logger   = NullLogger.Instance;
            EventBus = NullEventBus.Instance;
        }
        /// <summary>
        ///     Determines whether the intelligent captcha is valid.
        /// </summary>
        /// <param name="captchaManager">The specified captcha manager.</param>
        /// <param name="controller">
        ///     The specified <see cref="ControllerBase" />.
        /// </param>
        /// <param name="parameterContainer">
        ///     The specified <see cref="IParameterContainer" />.
        /// </param>
        /// <returns>
        ///     <c>True</c> if the intelligent captcha is valid; <c>false</c> not valid; <c>null</c> is not intelligent captcha.
        /// </returns>
        public virtual bool?IsValid(ICaptchaManager captchaManager, ControllerBase controller, IParameterContainer parameterContainer)
        {
            Validate.ArgumentNotNull(captchaManager, "captchaManager");
            Validate.ArgumentNotNull(controller, "controller");
            ValueProviderResult tokenValue = controller
                                             .ValueProvider
                                             .GetValue(captchaManager.TokenElementName + PolicyType);

            if (tokenValue == null || string.IsNullOrEmpty(tokenValue.AttemptedValue))
            {
                return(null);
            }
            if (!RemoveTokenValue(controller, tokenValue.AttemptedValue))
            {
                return(null);
            }

            ValueProviderResult validationVal = controller.ValueProvider.GetValue(ValidationInputName);

            return(captchaManager.StorageProvider.Remove(tokenValue.AttemptedValue) && validationVal != null &&
                   Reverse(validationVal.AttemptedValue) == tokenValue.AttemptedValue);
        }
 /// <summary>
 /// 构造函数
 /// </summary>
 public ThirdPartyLoginForTokenController(
     LogInManager logInManager,
     ICacheManager cacheManager,
     ICaptchaManager captchaManager,
     UserManager userManager,
     ISMSManager smsManager,
     QQAuthService qqAuthService,
     WeixinAuthService weixinAuthService,
     WeiboAuthService weiboAuthService,
     AlipayAuthService alipayAuthService
     )
 {
     _logInManager          = logInManager;
     _cacheManager          = cacheManager;
     _captchaManager        = captchaManager;
     LocalizationSourceName = MFConsts.LocalizationSourceName;
     _smsManager            = smsManager;
     _userManager           = userManager;
     _qqAuthService         = qqAuthService;
     _weixinAuthService     = weixinAuthService;
     _weiboAuthService      = weiboAuthService;
     _alipayAuthService     = alipayAuthService;
 }
Exemplo n.º 17
0
        /// <summary>
        ///     Determines whether the intelligent captcha is valid.
        /// </summary>
        /// <param name="captchaManager">The specified captcha manager.</param>
        /// <param name="controller">
        ///     The specified <see cref="ControllerBase" />.
        /// </param>
        /// <param name="parameterContainer">
        ///     The specified <see cref="IParameterContainer" />.
        /// </param>
        /// <returns>
        ///     <c>True</c> if the intelligent captcha is valid; <c>false</c> not valid; <c>null</c> is not intelligent captcha.
        /// </returns>
        public virtual bool?IsValid(ICaptchaManager captchaManager, ControllerBase controller, IParameterContainer parameterContainer)
        {
            Validate.ArgumentNotNull(captchaManager, "captchaManager");
            Validate.ArgumentNotNull(controller, "controller");
            ValueProviderResult tokenValue = controller
                                             .ValueProvider
                                             .GetValue(captchaManager.TokenElementName + PolicyType);

            if (tokenValue == null || string.IsNullOrEmpty(tokenValue.AttemptedValue))
            {
                return(null);
            }
            var captchaValue = captchaManager.StorageProvider.GetValue(tokenValue.AttemptedValue, TokenType.Drawing);

            if (captchaValue == null)
            {
                return(null);
            }

            foreach (IIntelligencePolicy intelligencePolicy in Policies)
            {
                bool?valid = intelligencePolicy.IsValid(captchaManager, controller, parameterContainer);
                if (valid == null)
                {
                    return(null);
                }
                if (!valid.Value)
                {
                    return(false);
                }
                captchaManager.StorageProvider.Remove(tokenValue.AttemptedValue);
                captchaManager.StorageProvider.Add(new KeyValuePair <string, ICaptchaValue>(tokenValue.AttemptedValue, captchaValue));
            }
            captchaManager.StorageProvider.Remove(tokenValue.AttemptedValue);
            return(true);
        }
Exemplo n.º 18
0
 public UserApplicationService(ICaptchaManager captchaManager, IUserManager userManager, ICacheManager cacheManager)
 {
     this.cacheManager   = cacheManager;
     this.captchaManager = captchaManager;
     this.userManager    = userManager;
 }
Exemplo n.º 19
0
 /// <summary>
 /// 初始化类<see cref="CaptchaController"/>。
 /// </summary>
 /// <param name="userManager">用户管理接口。</param>
 /// <param name="captchaManager">验证码管理接口。</param>
 public CaptchaController(IUserManager userManager, ICaptchaManager captchaManager)
 {
     _userManager    = userManager;
     _captchaManager = captchaManager;
 }
Exemplo n.º 20
0
        //    private readonly IUserAccountManager userAccountManager;

        public UserAccountService(ICaptchaManager captchaManager)
        {
            //this.cacheManager = cacheManager;
            this.captchaManager = captchaManager;
            //this.userAccountManager = userAccountManager;
        }
Exemplo n.º 21
0
 public DefaultClearTaskService(ICaptchaManager captchaManager) : base(captchaManager)
 {
 }
Exemplo n.º 22
0
 public CaptchaController(ICaptchaManager captchaManager)
 {
     _captchaManager = captchaManager;
 }
Exemplo n.º 23
0
 /// <summary>
 /// 初始化类<see cref="ClearTaskService"/>。
 /// </summary>
 /// <param name="captchaManager">短信验证管理接口。</param>
 public ClearTaskService(ICaptchaManager captchaManager)
 {
     _captchaManager = captchaManager;
 }
Exemplo n.º 24
0
 /// <summary>
 /// 初始化类<see cref="LoginController"/>。
 /// </summary>
 /// <param name="userManager">用户管理接口。</param>
 /// <param name="roleManager">角色管理接口。</param>
 /// <param name="captchaManager">验证码管理接口。</param>
 public LoginController(IUserManager userManager, IRoleManager roleManager, ICaptchaManager captchaManager)
 {
     _userManager    = userManager;
     _roleManager    = roleManager;
     _captchaManager = captchaManager;
 }