public static void UseLeakyBucketRateLimiting(this IApplicationBuilder applicationBuilder) { if (LeakyBucketConfigProvider.GetDefaultIdentityProvider() == null) { var httpContextAccessor = applicationBuilder.ApplicationServices.GetRequiredService <IHttpContextAccessor>(); var idProvider = new IpClientIdentityProvider <LeakyBucketClientIdentity>(httpContextAccessor); LeakyBucketConfigProvider.AddDefaultIdentityProvider(idProvider); } applicationBuilder.UseRateLimiting < LeakyBucketClientIdentity, LeakyBucketConfiguration, LeakyBucketRateLimitStrategy>(); }