private static string GetClientId(HttpContext context, RateLimitConfig rateLimitConfig) { var clientId = DefaultClientId; if (context.Request.Headers.Keys.Contains(rateLimitConfig.ClientId)) { clientId = context.Request.Headers[rateLimitConfig.ClientId].First(); } return(clientId); }
private static ClientRequestIdentity GetClientRequestIdentity(HttpContext context, RateLimitConfig rateLimitConfig) { var clientId = GetClientId(context, rateLimitConfig); var path = context.Request.Path.ToString().ToLowerInvariant(); var httpMethod = context.Request.Method.ToLowerInvariant(); var identity = new ClientRequestIdentity(clientId, path, httpMethod); return(identity); }
public RateLimitMiddleware(RequestDelegate nextStep, IHttpContextAccessor httpContextAccessor) : base(httpContextAccessor) { _nextStep = nextStep; _rateLimitConfig = GlobalConfig.RateLimit; _rateLimitHandler = new RateLimitHandler(_rateLimitConfig); }