Example #1
0
        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>();
        }