コード例 #1
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public SessionCaptchaStorageProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            ILogger <SessionCaptchaStorageProvider> logger)
        {
            _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));

            _logger.LogDebug("Using the SessionCaptchaStorageProvider.");
        }
コード例 #2
0
        /// <summary>
        /// The cookie value's bindings.
        /// </summary>
        public static string GetSalt(this HttpContext context, ICaptchaCryptoProvider captchaProtectionProvider)
        {
            var ip        = context.Connection.RemoteIpAddress;
            var userAgent = (string)context.Request.Headers[HeaderNames.UserAgent];
            var issueDate = DateTime.Now.ToString("yyyy_MM_dd", CultureInfo.InvariantCulture);
            var name      = typeof(ProvidersExtensions).Name;
            var salt      = $"::{issueDate}::{name}::{ip}::{userAgent}";

            return(captchaProtectionProvider.Hash(salt).HashString);
        }
コード例 #3
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public CookieCaptchaStorageProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            ILogger <CookieCaptchaStorageProvider> logger,
            IOptions <DNTCaptchaOptions> options)
        {
            _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
            _logger  = logger ?? throw new ArgumentNullException(nameof(logger));
            _options = options == null ? throw new ArgumentNullException(nameof(options)) : options.Value;

            _logger.LogDebug("Using the CookieCaptchaStorageProvider.");
        }
コード例 #4
0
        /// <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.");
        }
コード例 #5
0
 /// <summary>
 /// Serialization Provider
 /// </summary>
 public DistributedSerializationProvider(
     IDistributedCache distributedCache,
     ICaptchaCryptoProvider captchaProtectionProvider,
     ILogger <DistributedSerializationProvider> logger,
     IOptions <DNTCaptchaOptions> options)
 {
     distributedCache.CheckArgumentNull(nameof(distributedCache));
     _distributedCache          = distributedCache;
     _logger                    = logger;
     _captchaProtectionProvider = captchaProtectionProvider;
     _options                   = options.Value;
     _logger.LogDebug("Using the DistributedSerializationProvider.");
 }
コード例 #6
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public DistributedCacheCaptchaStorageProvider(
            ICaptchaCryptoProvider captchaProtectionProvider,
            IDistributedCache distributedCache,
            ILogger <DistributedCacheCaptchaStorageProvider> logger,
            IOptions <DNTCaptchaOptions> options)
        {
            _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
            _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
            _distributedCache = distributedCache ?? throw new ArgumentNullException(nameof(distributedCache));
            _options          = options == null ? throw new ArgumentNullException(nameof(options)) : options.Value;

            _logger.LogDebug("Using the DistributedCacheCaptchaStorageProvider.");
        }
コード例 #7
0
 /// <summary>
 /// Serialization Provider
 /// </summary>
 public InMemorySerializationProvider(
     IMemoryCache memoryCache,
     ICaptchaCryptoProvider captchaProtectionProvider,
     ILogger <InMemorySerializationProvider> logger,
     IOptions <DNTCaptchaOptions> options)
 {
     memoryCache.CheckArgumentNull(nameof(memoryCache));
     _memoryCache = memoryCache;
     _logger      = logger;
     _options     = options.Value;
     _captchaProtectionProvider = captchaProtectionProvider;
     _logger.LogDebug("Using the InMemorySerializationProvider.");
 }
コード例 #8
0
        /// <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.");
        }
コード例 #9
0
 /// <summary>
 /// DNTCaptcha Image Controller
 /// </summary>
 public DNTCaptchaImageController(
     ICaptchaImageProvider captchaImageProvider,
     ICaptchaCryptoProvider captchaProtectionProvider,
     ITempDataProvider tempDataProvider,
     ICaptchaStorageProvider captchaStorageProvider,
     ILogger <DNTCaptchaImageController> logger,
     ISerializationProvider serializationProvider)
 {
     _captchaImageProvider      = captchaImageProvider ?? throw new ArgumentNullException(nameof(captchaImageProvider));
     _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
     _tempDataProvider          = tempDataProvider ?? throw new ArgumentNullException(nameof(tempDataProvider));
     _captchaStorageProvider    = captchaStorageProvider ?? throw new ArgumentNullException(nameof(captchaStorageProvider));
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _serializationProvider = serializationProvider ?? throw new ArgumentNullException(nameof(serializationProvider));
 }
コード例 #10
0
 /// <summary>
 /// Serialization Provider
 /// </summary>
 public InMemorySerializationProvider(
     IMemoryCache memoryCache,
     ICaptchaCryptoProvider captchaProtectionProvider,
     ILogger <InMemorySerializationProvider> logger,
     IOptions <DNTCaptchaOptions> options)
 {
     _memoryCache = memoryCache ?? throw new ArgumentNullException(nameof(memoryCache));
     if (logger == null)
     {
         throw new ArgumentNullException(nameof(logger));
     }
     _options = options == null ? throw new ArgumentNullException(nameof(options)) : options.Value;
     _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
     logger.LogDebug("Using the InMemorySerializationProvider.");
 }
コード例 #11
0
 /// <summary>
 /// Validates the input number.
 /// </summary>
 public DNTCaptchaValidatorService(
     IHttpContextAccessor contextAccessor,
     ILogger <DNTCaptchaValidatorService> logger,
     ICaptchaCryptoProvider captchaProtectionProvider,
     ICaptchaStorageProvider captchaStorageProvider,
     Func <DisplayMode, ICaptchaTextProvider> captchaTextProvider,
     IOptions <DNTCaptchaOptions> options
     )
 {
     _logger = logger ?? throw new ArgumentNullException(nameof(logger));
     _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
     _captchaStorageProvider    = captchaStorageProvider ?? throw new ArgumentNullException(nameof(captchaStorageProvider));
     _captchaTextProvider       = captchaTextProvider ?? throw new ArgumentNullException(nameof(captchaTextProvider));
     _contextAccessor           = contextAccessor ?? throw new ArgumentNullException(nameof(contextAccessor));
     _captchaOptions            = options == null ? throw new ArgumentNullException(nameof(options)) : options.Value;
 }
コード例 #12
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.");
        }
コード例 #13
0
 /// <summary>
 /// DNTCaptcha TagHelper
 /// </summary>
 public DNTCaptchaTagHelper(
     ICaptchaCryptoProvider captchaProtectionProvider,
     IRandomNumberProvider randomNumberProvider,
     Func <DisplayMode, ICaptchaTextProvider> captchaTextProvider,
     ICaptchaStorageProvider captchaStorageProvider,
     IAntiforgery antiforgery,
     ISerializationProvider serializationProvider,
     IOptions <DNTCaptchaOptions> options
     )
 {
     _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
     _randomNumberProvider      = randomNumberProvider ?? throw new ArgumentNullException(nameof(randomNumberProvider));
     _captchaTextProvider       = captchaTextProvider ?? throw new ArgumentNullException(nameof(captchaTextProvider));
     _captchaStorageProvider    = captchaStorageProvider ?? throw new ArgumentNullException(nameof(captchaStorageProvider));
     _antiforgery           = antiforgery ?? throw new ArgumentNullException(nameof(antiforgery));
     _serializationProvider = serializationProvider ?? throw new ArgumentNullException(nameof(serializationProvider));
     _captchaOptions        = options == null ? throw new ArgumentNullException(nameof(options)) : options.Value;
 }
コード例 #14
0
        /// <summary>
        /// The cookie value's bindings.
        /// </summary>
        public static string GetSalt(this HttpContext context, ICaptchaCryptoProvider captchaProtectionProvider)
        {
            if (context == null)
            {
                throw new ArgumentNullException(nameof(context));
            }

            if (captchaProtectionProvider == null)
            {
                throw new ArgumentNullException(nameof(captchaProtectionProvider));
            }

            var userAgent = (string)context.Request.Headers[HeaderNames.UserAgent];
            var issueDate = DateTime.Now.ToString("yyyy_MM_dd", CultureInfo.InvariantCulture);
            var name      = typeof(ProvidersExtensions).Name;
            var salt      = $"::{issueDate}::{name}::{userAgent}";

            return(captchaProtectionProvider.Hash(salt).HashString);
        }
コード例 #15
0
 /// <summary>
 /// DNTCaptcha Api
 /// </summary>
 public DNTCaptchaApiProvider(
     ICaptchaCryptoProvider captchaProtectionProvider,
     IRandomNumberProvider randomNumberProvider,
     Func <DisplayMode, ICaptchaTextProvider> captchaTextProvider,
     ICaptchaStorageProvider captchaStorageProvider,
     ISerializationProvider serializationProvider,
     IHttpContextAccessor httpContextAccessor,
     IUrlHelper urlHelper,
     IOptions <DNTCaptchaOptions> options)
 {
     _captchaProtectionProvider = captchaProtectionProvider ?? throw new ArgumentNullException(nameof(captchaProtectionProvider));
     _randomNumberProvider      = randomNumberProvider ?? throw new ArgumentNullException(nameof(randomNumberProvider));
     _captchaTextProvider       = captchaTextProvider ?? throw new ArgumentNullException(nameof(captchaTextProvider));
     _captchaStorageProvider    = captchaStorageProvider ?? throw new ArgumentNullException(nameof(captchaStorageProvider));
     _serializationProvider     = serializationProvider ?? throw new ArgumentNullException(nameof(serializationProvider));
     _httpContextAccessor       = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));
     _urlHelper      = urlHelper ?? throw new ArgumentNullException(nameof(urlHelper));
     _captchaOptions = options == null ? throw new ArgumentNullException(nameof(options)) : options.Value;
 }
コード例 #16
0
        /// <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;
        }
コード例 #17
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;
        }
コード例 #18
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;
        }
コード例 #19
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;
        }