public SimpleCaptchaHandler(HttpContextBase context)
        {
            m_factory = CaptchaBuilder.Current.Factory(context.Request.Path);

            m_context = context;
            var options = m_factory.Options;

            m_path       = options.Path;
            m_maxTimeout = options.MaxTimeout;
        }
 public CaptchaManager(
     ICaptchaValidatorFactory validatorFactory,
     IValidateHandlerFactory validateHandlerFactory,
     ITokenGenerate token,
     ICaptchaFactory captchaFactory
     )
 {
     _validatorFactory       = validatorFactory;
     _validateHandlerFactory = validateHandlerFactory;
     _token   = token;
     _factory = captchaFactory;
 }
Beispiel #3
0
        private CaptchaHandler(HttpContextBase context, ICaptchaFactory factory)
        {
            if (factory == null)
            {
                throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, "The path '{0}' has no setup in CaptchaBuilder", context.Request.Path));
            }

            m_context = context;
            m_factory = factory;
            var options = m_factory.Options;

            m_path                = options.Path;
            m_maxTimeout          = options.MaxTimeout;
            m_varyByCacheLifetime = options.VaryByCacheLifetime;
        }
Beispiel #4
0
        private bool DoValidate(ICaptchaFactory factory, string path)
        {
            var options       = factory.Options;
            var request       = HttpContext.Current.Request;
            var challengeCode = factory.ChallengeCodeProvider().ReadChallengeCode(request.Params);

            if (challengeCode == null)
            {
                m_state.AddError(options.ValidationStateKey, ResourceHelper.ValidationChallengeInvalid());
                return(false);
            }

            var cache   = factory.ChallengeCache();
            var datakey = new DataKey <Pair <DateTime, string> >(string.Concat(path, challengeCode));

            cache.Get(datakey);
            if (!datakey.HasValue)
            {
                m_state.AddError(options.ValidationStateKey,
                                 string.Format(CultureInfo.InvariantCulture,
                                               ResourceHelper.ValidationCodeExpired(), options.MaxTimeout.TotalSeconds));
                return(false);
            }

            cache.Remove(datakey.Key);
            if (datakey.Value.First.Add(options.MinTimeout) > DateTime.UtcNow)
            {
                m_state.AddError(options.ValidationStateKey,
                                 string.Format(CultureInfo.InvariantCulture, ResourceHelper.ValidationTooQuickly(), options.MinTimeout.TotalSeconds));
                return(false);
            }

            var entry = request.Form[options.ValidationStateKey];

            if (!datakey.Value.Second.Equals(entry, StringComparison.OrdinalIgnoreCase))
            {
                m_state.AddError(options.ValidationStateKey, ResourceHelper.ValidationNoMatch());
                return(false);
            }

            return(true);
        }
Beispiel #5
0
 public void Setup(ICaptchaFactory factory)
 {
     m_factories[factory.Options.Path] = () => factory;
 }
Beispiel #6
0
 public CaptchaController(ICaptchaFactory <Bitmap, string> captchaFactory)
 {
     this.captchaFactory = captchaFactory;
 }
Beispiel #7
0
 public DefaultController(ICaptchaFactory captchaFactory)
 {
     _captchaFactory = captchaFactory;
 }
 public CaptchaController(ICaptchaFactory captchaFactory)
 {
     _captchaFactory = captchaFactory;
 }