コード例 #1
0
 /// <summary>
 /// Represents the storage to save the captcha tokens.
 /// </summary>
 public CookieCaptchaStorageProvider(
     ICaptchaProtectionProvider captchaProtectionProvider,
     ILogger <CookieCaptchaStorageProvider> logger)
 {
     _captchaProtectionProvider = captchaProtectionProvider;
     _logger = logger;
 }
コード例 #2
0
 public ReservationController(ReservationDbContext dbcontext, NPOLJwtTokenService tokenservice, SMSService smsService, CultureContext cultureContext,
                              ICaptchaProtectionProvider captchaProtectionProvider, IHumanReadableIntegerProvider humanReadableIntegerProvider) : base(cultureContext)
 {
     db = dbcontext;
     this.tokenservice                 = tokenservice;
     this.smsService                   = smsService;
     this.cultureContext               = cultureContext;
     this.captchaProtectionProvider    = captchaProtectionProvider;
     this.humanReadableIntegerProvider = humanReadableIntegerProvider;
 }
コード例 #3
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public CookieCaptchaStorageProvider(
            ICaptchaProtectionProvider captchaProtectionProvider,
            ILogger <CookieCaptchaStorageProvider> logger)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger = logger;
        }
コード例 #4
0
        /// <summary>
        /// The cookie value's bindings.
        /// </summary>
        public static string GetSalt(this HttpContext context, ICaptchaProtectionProvider 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));
        }
コード例 #5
0
 /// <summary>
 /// Serialization Provider
 /// </summary>
 public InMemorySerializationProvider(
     IMemoryCache memoryCache,
     ICaptchaProtectionProvider captchaProtectionProvider,
     ILogger <InMemorySerializationProvider> logger)
 {
     memoryCache.CheckArgumentNull(nameof(memoryCache));
     _memoryCache = memoryCache;
     _logger      = logger;
     _captchaProtectionProvider = captchaProtectionProvider;
     _logger.LogInformation("Using the InMemorySerializationProvider.");
 }
コード例 #6
0
 /// <summary>
 /// Serialization Provider
 /// </summary>
 public DistributedSerializationProvider(
     IDistributedCache distributedCache,
     ICaptchaProtectionProvider captchaProtectionProvider,
     ILogger <DistributedSerializationProvider> logger)
 {
     distributedCache.CheckArgumentNull(nameof(distributedCache));
     _distributedCache          = distributedCache;
     _logger                    = logger;
     _captchaProtectionProvider = captchaProtectionProvider;
     _logger.LogDebug("Using the DistributedSerializationProvider.");
 }
コード例 #7
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public SessionCaptchaStorageProvider(
            ICaptchaProtectionProvider captchaProtectionProvider,
            ILogger <SessionCaptchaStorageProvider> logger)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger = logger;

            _logger.LogInformation("Using the SessionCaptchaStorageProvider.");
        }
コード例 #8
0
 /// <summary>
 /// Serialization Provider
 /// </summary>
 public InMemorySerializationProvider(
     IMemoryCache memoryCache,
     ICaptchaProtectionProvider 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.");
 }
コード例 #9
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public CookieCaptchaStorageProvider(
            ICaptchaProtectionProvider 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.");
        }
コード例 #10
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public MemoryCacheCaptchaStorageProvider(
            ICaptchaProtectionProvider captchaProtectionProvider,
            IMemoryCache memoryCache,
            ILogger <MemoryCacheCaptchaStorageProvider> logger)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));
            memoryCache.CheckArgumentNull(nameof(memoryCache));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger      = logger;
            _memoryCache = memoryCache;

            _logger.LogInformation("Using the MemoryCacheCaptchaStorageProvider.");
        }
コード例 #11
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public DistributedCacheCaptchaStorageProvider(
            ICaptchaProtectionProvider captchaProtectionProvider,
            IDistributedCache distributedCache,
            ILogger <DistributedCacheCaptchaStorageProvider> logger)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            logger.CheckArgumentNull(nameof(logger));
            distributedCache.CheckArgumentNull(nameof(distributedCache));

            _captchaProtectionProvider = captchaProtectionProvider;
            _logger           = logger;
            _distributedCache = distributedCache;

            _logger.LogInformation("Using the DistributedCacheCaptchaStorageProvider.");
        }
コード例 #12
0
        /// <summary>
        /// DNTCaptcha Image Controller
        /// </summary>
        public DNTCaptchaImageController(
            ICaptchaImageProvider captchaImageProvider,
            ICaptchaProtectionProvider captchaProtectionProvider,
            ITempDataProvider tempDataProvider,
            ICaptchaStorageProvider captchaStorageProvider)
        {
            captchaImageProvider.CheckArgumentNull(nameof(captchaImageProvider));
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            tempDataProvider.CheckArgumentNull(nameof(tempDataProvider));
            captchaStorageProvider.CheckArgumentNull(nameof(captchaStorageProvider));

            _captchaImageProvider      = captchaImageProvider;
            _captchaProtectionProvider = captchaProtectionProvider;
            _tempDataProvider          = tempDataProvider;
            _captchaStorageProvider    = captchaStorageProvider;
        }
コード例 #13
0
        /// <summary>
        /// DNTCaptcha TagHelper
        /// </summary>
        public DNTCaptchaTagHelper(
            ICaptchaProtectionProvider captchaProtectionProvider,
            IRandomNumberProvider randomNumberProvider,
            IHumanReadableIntegerProvider humanReadableIntegerProvider,
            ICaptchaStorageProvider captchaStorageProvider)
        {
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            randomNumberProvider.CheckArgumentNull(nameof(randomNumberProvider));
            humanReadableIntegerProvider.CheckArgumentNull(nameof(humanReadableIntegerProvider));
            captchaStorageProvider.CheckArgumentNull(nameof(captchaStorageProvider));

            _captchaProtectionProvider    = captchaProtectionProvider;
            _randomNumberProvider         = randomNumberProvider;
            _humanReadableIntegerProvider = humanReadableIntegerProvider;
            _captchaStorageProvider       = captchaStorageProvider;
        }
コード例 #14
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public MemoryCacheCaptchaStorageProvider(
            ICaptchaProtectionProvider 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.");
        }
コード例 #15
0
        /// <summary>
        /// Represents the storage to save the captcha tokens.
        /// </summary>
        public DistributedCacheCaptchaStorageProvider(
            ICaptchaProtectionProvider 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.");
        }
コード例 #16
0
        /// <summary>
        /// The cookie value's bindings.
        /// </summary>
        public static string GetSalt(this HttpContext context, ICaptchaProtectionProvider captchaProtectionProvider)
        {
            //IP за балансировщиком передается в заголовке "X-Real-Ip"
            string ip = context.Request.Headers["X-Real-Ip"];

            if (ip == null)
            {
                ip = context.Connection.RemoteIpAddress?.ToString();
            }
            var userAgent = (string)context.Request.Headers[HeaderNames.UserAgent];
            var issueDate = DateTime.Now.ToString("yyyy_MM_dd", CultureInfo.InvariantCulture);
            var name      = typeof(ProvidersExtensions).Name;
            //{ip} убрали из соли
            var salt = $"::{issueDate}::{name}::{userAgent}";

            return(captchaProtectionProvider.Hash(salt));
        }
コード例 #17
0
        /// <summary>
        ///
        /// </summary>
        public DNTCaptchaValidatorService(
            ILogger <DNTCaptchaValidatorService> logger,
            ICaptchaProtectionProvider captchaProtectionProvider,
            ICaptchaStorageProvider captchaStorageProvider,
            IHumanReadableIntegerProvider humanReadableIntegerProvider
            )
        {
            logger.CheckArgumentNull(nameof(logger));
            _logger = logger;

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

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

            humanReadableIntegerProvider.CheckArgumentNull(nameof(humanReadableIntegerProvider));
            _humanReadableIntegerProvider = humanReadableIntegerProvider;
        }
コード例 #18
0
        /// <summary>
        ///
        /// </summary>
        public DNTCaptchaValidatorService(
            ILogger <DNTCaptchaValidatorService> logger,
            ICaptchaProtectionProvider 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;
        }
コード例 #19
0
        /// <summary>
        /// DNTCaptcha TagHelper
        /// </summary>
        public DNTCaptchaApiController(
            ICaptchaProtectionProvider captchaProtectionProvider,
            IRandomNumberProvider randomNumberProvider,
            Func <DisplayMode, ICaptchaTextProvider> captchaTextProvider,
            ICaptchaStorageProvider captchaStorageProvider,
            ISerializationProvider serializationProvider)
        {
            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;
        }
コード例 #20
0
        /// <summary>
        /// DNTCaptcha Image Controller
        /// </summary>
        public DNTCaptchaImageController(
            ICaptchaImageProvider captchaImageProvider,
            ICaptchaProtectionProvider 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;
        }
コード例 #21
0
        public DNTCaptchaMiddleware(
            RequestDelegate next,
            ICaptchaImageProvider captchaImageProvider,
            ICaptchaProtectionProvider captchaProtectionProvider,
            ITempDataProvider tempDataProvider,
            ICaptchaStorageProvider captchaStorageProvider,
            ILogger <DNTCaptchaImageController> logger)
        {
            this._next = next;

            captchaImageProvider.CheckArgumentNull(nameof(captchaImageProvider));
            captchaProtectionProvider.CheckArgumentNull(nameof(captchaProtectionProvider));
            tempDataProvider.CheckArgumentNull(nameof(tempDataProvider));
            captchaStorageProvider.CheckArgumentNull(nameof(captchaStorageProvider));
            captchaStorageProvider.CheckArgumentNull(nameof(logger));

            _captchaImageProvider      = captchaImageProvider;
            _captchaProtectionProvider = captchaProtectionProvider;
            _tempDataProvider          = tempDataProvider;
            _captchaStorageProvider    = captchaStorageProvider;
            _logger = logger;
        }
コード例 #22
0
        /// <summary>
        /// DNTCaptcha Api
        /// </summary>
        public DNTCaptchaApiProvider(
            ICaptchaProtectionProvider 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;
        }
コード例 #23
0
        /// <summary>
        /// DNTCaptcha TagHelper
        /// </summary>
        public DNTCaptchaTagHelper(
            ICaptchaProtectionProvider 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;
        }
コード例 #24
0
 /// <summary>
 /// Serialization Provider
 /// </summary>
 public SerializationProvider(IMemoryCache memoryCache, ICaptchaProtectionProvider captchaProtectionProvider)
 {
     memoryCache.CheckArgumentNull(nameof(memoryCache));
     _memoryCache = memoryCache;
     _captchaProtectionProvider = captchaProtectionProvider;
 }