private static void ConfigureIpFiltering(IServiceCollection serviceCollection, IpFilteringOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } serviceCollection.AddSingleton <IpFilteringOptions>(options); if (options.IpRulesSource == IpRulesSource.Configuration) { serviceCollection.AddSingleton <IIpRulesProvider>(new DefaultIpRulesProvider( options.Whitelist, options.Blacklist)); } if (options.IpRulesCacheSource == IpRulesCacheSource.Configuration) { serviceCollection.AddSingleton <IIpAddressResultCache>(new DefaultIpResultCache(options.IpRulesCacheSource == IpRulesCacheSource.Configuration ? options.DefaultIpRuleCacheDuration : null)); } serviceCollection.AddSingleton <IIpAddressValidator, AddressValidator>(); }
public static void AddIpFiltering(this IServiceCollection collection, IpFilteringOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } ConfigureIpFiltering(collection, options); }