Ejemplo n.º 1
0
        public async Task InvokeAsync(HttpContext context)
        {
            var apiKeysFromHeaders = _apiKeyRepository.GetApiKeysFromHeaders(context).ToList();

            if (ApiKeyFound(apiKeysFromHeaders))
            {
                await _next.Invoke(context);
            }
            else if (ApiKeyNotFound(apiKeysFromHeaders))
            {
                context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
            }
            else if (ApiKeyHasDuplicates(apiKeysFromHeaders))
            {
                throw new InvalidOperationException(CreateDuplicateApiKeyError(apiKeysFromHeaders));
            }
        }