public RateLimitFilter(ILogger <RateLimitFilter> logger, RateLimitOptions options, IRateLimitPolicyCounter counter, IClientIdentifierProvider clientIdentifierProvider, int limitPerHour) { _logger = logger; _options = options; _counter = counter; _clientIdentifierProvider = clientIdentifierProvider; _limitPerHour = limitPerHour; }
/// <summary> /// Adds custom client identifier provider. /// </summary> /// <param name="clientIdentifierProvider"> /// The implementation of <see cref="IClientIdentifierProvider"/> interface. /// </param> /// <exception cref="ArgumentNullException"></exception> public void AddClientIdentifierProvider(IClientIdentifierProvider clientIdentifierProvider) { ClientIdentifierProviders.Add(clientIdentifierProvider ?? throw new ArgumentNullException(nameof(clientIdentifierProvider))); }