From 3a484ccd3b9fcfb36746a637bd4adc33465f27d0 Mon Sep 17 00:00:00 2001 From: Kahbazi <akahbazi@gmail.com> Date: Thu, 12 Aug 2021 00:15:31 +0430 Subject: [PATCH] Use strongly typed headers (#35270) --- .../ResponseCaching/src/ResponseCachingMiddleware.cs | 8 ++++---- .../src/ResponseCachingPolicyProvider.cs | 4 ++-- .../src/Filters/ResponseCacheFilterExecutor.cs | 10 +++++----- src/Servers/IIS/IIS/src/Core/IISHttpContext.cs | 2 +- .../ChunkingCookieManager/ChunkingCookieManager.cs | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs b/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs index 0961b148c56..b1268642d39 100644 --- a/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs +++ b/src/Middleware/ResponseCaching/src/ResponseCachingMiddleware.cs @@ -461,8 +461,8 @@ namespace Microsoft.AspNetCore.ResponseCaching } EntityTagHeaderValue eTag; - if (!StringValues.IsNullOrEmpty(cachedResponseHeaders[HeaderNames.ETag]) - && EntityTagHeaderValue.TryParse(cachedResponseHeaders[HeaderNames.ETag].ToString(), out eTag) + if (!StringValues.IsNullOrEmpty(cachedResponseHeaders.ETag) + && EntityTagHeaderValue.TryParse(cachedResponseHeaders.ETag.ToString(), out eTag) && EntityTagHeaderValue.TryParseList(ifNoneMatchHeader, out var ifNoneMatchEtags)) { for (var i = 0; i < ifNoneMatchEtags.Count; i++) @@ -482,8 +482,8 @@ namespace Microsoft.AspNetCore.ResponseCaching if (!StringValues.IsNullOrEmpty(ifModifiedSince)) { DateTimeOffset modified; - if (!HeaderUtilities.TryParseDate(cachedResponseHeaders[HeaderNames.LastModified].ToString(), out modified) && - !HeaderUtilities.TryParseDate(cachedResponseHeaders[HeaderNames.Date].ToString(), out modified)) + if (!HeaderUtilities.TryParseDate(cachedResponseHeaders.LastModified.ToString(), out modified) && + !HeaderUtilities.TryParseDate(cachedResponseHeaders.Date.ToString(), out modified)) { return false; } diff --git a/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs b/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs index a658b576165..42ce2e695e7 100644 --- a/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs +++ b/src/Middleware/ResponseCaching/src/ResponseCachingPolicyProvider.cs @@ -167,7 +167,7 @@ namespace Microsoft.AspNetCore.ResponseCaching public virtual bool IsCachedEntryFresh(ResponseCachingContext context) { var age = context.CachedEntryAge!.Value; - var cachedCacheControlHeaders = context.CachedResponseHeaders[HeaderNames.CacheControl]; + var cachedCacheControlHeaders = context.CachedResponseHeaders.CacheControl; var requestCacheControlHeaders = context.HttpContext.Request.Headers.CacheControl; // Add min-fresh requirements @@ -232,7 +232,7 @@ namespace Microsoft.AspNetCore.ResponseCaching { // Validate expiration DateTimeOffset expires; - if (HeaderUtilities.TryParseDate(context.CachedResponseHeaders[HeaderNames.Expires].ToString(), out expires) && + if (HeaderUtilities.TryParseDate(context.CachedResponseHeaders.Expires.ToString(), out expires) && context.ResponseTime!.Value >= expires) { context.Logger.ExpirationExpiresExceeded(context.ResponseTime.Value, expires); diff --git a/src/Mvc/Mvc.Core/src/Filters/ResponseCacheFilterExecutor.cs b/src/Mvc/Mvc.Core/src/Filters/ResponseCacheFilterExecutor.cs index 367cc75cf7d..2e390e68fcb 100644 --- a/src/Mvc/Mvc.Core/src/Filters/ResponseCacheFilterExecutor.cs +++ b/src/Mvc/Mvc.Core/src/Filters/ResponseCacheFilterExecutor.cs @@ -79,7 +79,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters if (!string.IsNullOrEmpty(VaryByHeader)) { - headers[HeaderNames.Vary] = VaryByHeader; + headers.Vary = VaryByHeader; } if (VaryByQueryKeys != null) @@ -95,13 +95,13 @@ namespace Microsoft.AspNetCore.Mvc.Filters if (NoStore) { - headers[HeaderNames.CacheControl] = "no-store"; + headers.CacheControl = "no-store"; // Cache-control: no-store, no-cache is valid. if (Location == ResponseCacheLocation.None) { headers.AppendCommaSeparatedValues(HeaderNames.CacheControl, "no-cache"); - headers[HeaderNames.Pragma] = "no-cache"; + headers.Pragma = "no-cache"; } } else @@ -117,7 +117,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters break; case ResponseCacheLocation.None: cacheControlValue = "no-cache,"; - headers[HeaderNames.Pragma] = "no-cache"; + headers.Pragma = "no-cache"; break; default: cacheControlValue = null; @@ -125,7 +125,7 @@ namespace Microsoft.AspNetCore.Mvc.Filters } cacheControlValue = $"{cacheControlValue}max-age={Duration}"; - headers[HeaderNames.CacheControl] = cacheControlValue; + headers.CacheControl = cacheControlValue; } } } diff --git a/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs b/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs index ff84132da50..8405bbbbede 100644 --- a/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs +++ b/src/Servers/IIS/IIS/src/Core/IISHttpContext.cs @@ -264,7 +264,7 @@ namespace Microsoft.AspNetCore.Server.IIS.Core // Http/1.x requests with bodies require either a Content-Length or Transfer-Encoding header. // Note Http.Sys adds the Transfer-Encoding: chunked header to HTTP/2 requests with bodies for back compat. // Transfer-Encoding takes priority over Content-Length. - string transferEncoding = RequestHeaders[HeaderNames.TransferEncoding]; + string transferEncoding = RequestHeaders.TransferEncoding; if (string.Equals("chunked", transferEncoding?.Trim(), StringComparison.OrdinalIgnoreCase)) { return true; diff --git a/src/Shared/ChunkingCookieManager/ChunkingCookieManager.cs b/src/Shared/ChunkingCookieManager/ChunkingCookieManager.cs index acff50b94ca..30ec3c66ed6 100644 --- a/src/Shared/ChunkingCookieManager/ChunkingCookieManager.cs +++ b/src/Shared/ChunkingCookieManager/ChunkingCookieManager.cs @@ -284,7 +284,7 @@ namespace Microsoft.AspNetCore.Internal } var responseHeaders = context.Response.Headers; - var existingValues = responseHeaders[HeaderNames.SetCookie]; + var existingValues = responseHeaders.SetCookie; if (!StringValues.IsNullOrEmpty(existingValues)) { @@ -299,7 +299,7 @@ namespace Microsoft.AspNetCore.Internal } } - responseHeaders[HeaderNames.SetCookie] = new StringValues(newValues.ToArray()); + responseHeaders.SetCookie = new StringValues(newValues.ToArray()); } var responseCookies = context.Response.Cookies; -- GitLab