/// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public SessionCaptchaStorageProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            ILogger <SessionCaptchaStorageProvider> logger)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger = logger;

            _logger.LogDebug("Using the SessionCaptchaStorageProvider.");
        }
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public CookieCaptchaStorageProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            ILogger <CookieCaptchaStorageProvider> logger,
            IOptions <DNTCaptchaOptions> options)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger  = logger;
            _options = options.Value;

            _logger.LogDebug("Using the CookieCaptchaStorageProvider.");
        }
예제 #3
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public MemoryCacheCaptchaStorageProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            IMemoryCache memoryCache,
            ILogger <MemoryCacheCaptchaStorageProvider> logger,
            IOptions <DNTCaptchaOptions> options)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));
            memoryCache.CheckArgumentNull(nameof(memoryCache));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger      = logger;
            _memoryCache = memoryCache;
            _options     = options.Value;

            _logger.LogDebug("Using the MemoryCacheCaptchaStorageProvider.");
        }
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public DistributedCacheCaptchaStorageProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            IDistributedCache distributedCache,
            ILogger <DistributedCacheCaptchaStorageProvider> logger,
            IOptions <DNTCaptchaOptions> options)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));
            distributedCache.CheckArgumentNull(nameof(distributedCache));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger           = logger;
            _distributedCache = distributedCache;
            _options          = options.Value;

            _logger.LogDebug("Using the DistributedCacheCaptchaStorageProvider.");
        }
        /// <summary>
        /// DNTCaptcha Image Controller
        /// </summary>
        public DNTCaptchaImageController(
            ICaptchaImageProvider captchaImageProvider,
            ICaptchaCryptoProvider captchaProtectionProvider,
            ITempDataProvider tempDataProvider,
            ICaptchaStorageProvider captchaStorageProvider,
            ILogger <DNTCaptchaImageController> logger,
            ISerializationProvider serializationProvider)
        {
            captchaImageProvider.CheckArgumentNull(nameof(captchaImageProvider));
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            tempDataProvider.CheckArgumentNull(nameof(tempDataProvider));
            captchaStorageProvider.CheckArgumentNull(nameof(captchaStorageProvider));
            logger.CheckArgumentNull(nameof(logger));
            serializationProvider.CheckArgumentNull(nameof(serializationProvider));

            _captchaImageProvider      = captchaImageProvider;
            _captchaProtectionProvider = captchaProtectionProvider;
            _tempDataProvider          = tempDataProvider;
            _captchaStorageProvider    = captchaStorageProvider;
            _logger = logger;
            _serializationProvider = serializationProvider;
        }
예제 #6
0
        /// <summary>
        /// DNTCaptcha Api
        /// </summary>
        public DNTCaptchaApiProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            IRandomNumberProvider randomNumberProvider,
            Func <DisplayMode, ICaptchaTextProvider> captchaTextProvider,
            ICaptchaStorageProvider captchaStorageProvider,
            ISerializationProvider serializationProvider,
            IHttpContextAccessor httpContextAccessor,
            IUrlHelper urlHelper)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            randomNumberProvider.CheckArgumentNull(nameof(randomNumberProvider));
            captchaTextProvider.CheckArgumentNull(nameof(captchaTextProvider));
            captchaStorageProvider.CheckArgumentNull(nameof(captchaStorageProvider));
            serializationProvider.CheckArgumentNull(nameof(serializationProvider));

            _captchaProtectionProvider = captchaProtectionProvider;
            _randomNumberProvider      = randomNumberProvider;
            _captchaTextProvider       = captchaTextProvider;
            _captchaStorageProvider    = captchaStorageProvider;
            _serializationProvider     = serializationProvider;
            _httpContextAccessor       = httpContextAccessor;
            _urlHelper = urlHelper;
        }
예제 #7
0
        /// <summary>
        /// DNTCaptcha TagHelper
        /// </summary>
        public DNTCaptchaTagHelper(
            ICaptchaCryptoProvider captchaProtectionProvider,
            IRandomNumberProvider randomNumberProvider,
            Func <DisplayMode, ICaptchaTextProvider> captchaTextProvider,
            ICaptchaStorageProvider captchaStorageProvider,
            IAntiforgery antiforgery,
            ISerializationProvider serializationProvider
            )
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            randomNumberProvider.CheckArgumentNull(nameof(randomNumberProvider));
            captchaTextProvider.CheckArgumentNull(nameof(captchaTextProvider));
            captchaStorageProvider.CheckArgumentNull(nameof(captchaStorageProvider));
            antiforgery.CheckArgumentNull(nameof(antiforgery));
            serializationProvider.CheckArgumentNull(nameof(serializationProvider));

            _captchaProtectionProvider = captchaProtectionProvider;
            _randomNumberProvider      = randomNumberProvider;
            _captchaTextProvider       = captchaTextProvider;
            _captchaStorageProvider    = captchaStorageProvider;
            _antiforgery           = antiforgery;
            _serializationProvider = serializationProvider;
        }
예제 #8
0
        /// <summary>
        ///
        /// </summary>
        public DNTCaptchaValidatorService(
            IHttpContextAccessor contextAccessor,
            ILogger <DNTCaptchaValidatorService> logger,
            ICaptchaCryptoProvider captchaProtectionProvider,
            ICaptchaStorageProvider captchaStorageProvider,
            Func <DisplayMode, ICaptchaTextProvider> captchaTextProvider
            )
        {
            logger.CheckArgumentNull(nameof(logger));
            _logger = logger;

            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            _captchaProtectionProvider = captchaProtectionProvider;

            captchaStorageProvider.CheckArgumentNull(nameof(captchaStorageProvider));
            _captchaStorageProvider = captchaStorageProvider;

            captchaTextProvider.CheckArgumentNull(nameof(captchaTextProvider));
            _captchaTextProvider = captchaTextProvider;

            contextAccessor.CheckArgumentNull(nameof(contextAccessor));
            _contextAccessor = contextAccessor;
        }