/// <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."); }
/// <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); }
/// <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."); }
/// <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> /// 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."); }
/// <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."); }
/// <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."); }
/// <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."); }
/// <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)); }
/// <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."); }
/// <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; }
/// <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> /// 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; }
/// <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); }
/// <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; }
/// <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; }
/// <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; }
/// <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; }
/// <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; }