From c19f3d29ca8fd1b8359940b52faf4c32d2b0b601 Mon Sep 17 00:00:00 2001 From: Martin Costello Date: Wed, 24 Jun 2020 23:48:36 +0100 Subject: [PATCH] Only look-up Cache-Control once (#23329) Only look-up the Cache-Control header once, rather than twice if non-empty. --- .../ResponseCaching/src/ResponseCachingPolicyProvider.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs b/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs index 3cb94ab005..491d803d94 100644 --- a/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs +++ b/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs @@ -34,11 +34,12 @@ namespace Microsoft.AspNetCore.ResponseCaching public virtual bool AllowCacheLookup(ResponseCachingContext context) { var requestHeaders = context.HttpContext.Request.Headers; + var cacheControl = requestHeaders[HeaderNames.CacheControl]; // Verify request cache-control parameters - if (!StringValues.IsNullOrEmpty(requestHeaders[HeaderNames.CacheControl])) + if (!StringValues.IsNullOrEmpty(cacheControl)) { - if (HeaderUtilities.ContainsCacheDirective(requestHeaders[HeaderNames.CacheControl], CacheControlHeaderValue.NoCacheString)) + if (HeaderUtilities.ContainsCacheDirective(cacheControl, CacheControlHeaderValue.NoCacheString)) { context.Logger.RequestWithNoCacheNotCacheable(); return false;