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; }
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; }
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); }
public void Setup(ICaptchaFactory factory) { m_factories[factory.Options.Path] = () => factory; }
public CaptchaController(ICaptchaFactory <Bitmap, string> captchaFactory) { this.captchaFactory = captchaFactory; }
public DefaultController(ICaptchaFactory captchaFactory) { _captchaFactory = captchaFactory; }
public CaptchaController(ICaptchaFactory captchaFactory) { _captchaFactory = captchaFactory; }