public static void OutputCache(this HttpResponseBase response, int numberOfSeconds, bool sliding = false, IEnumerable <string> varyByParams = null, IEnumerable <string> varyByHeaders = null, IEnumerable <string> varyByContentEncodings = null, HttpCacheability cacheability = HttpCacheability.Public) { HttpCachePolicyBase cache = response.Cache; var context = HttpContext.Current; cache.SetCacheability(cacheability); cache.SetExpires(context.Timestamp.AddSeconds(numberOfSeconds)); cache.SetMaxAge(new TimeSpan(0, 0, numberOfSeconds)); cache.SetValidUntilExpires(true); cache.SetLastModified(context.Timestamp); cache.SetSlidingExpiration(sliding); if (varyByParams != null) { foreach (var p in varyByParams) { cache.VaryByParams[p] = true; } } if (varyByHeaders != null) { foreach (var headerName in varyByHeaders) { cache.VaryByHeaders[headerName] = true; } } if (varyByContentEncodings != null) { foreach (var contentEncoding in varyByContentEncodings) { cache.VaryByContentEncodings[contentEncoding] = true; } } }
internal static void OutputCache( HttpContextBase httpContext, HttpCachePolicyBase cache, int numberOfSeconds, bool sliding, IEnumerable <string> varyByParams, IEnumerable <string> varyByHeaders, IEnumerable <string> varyByContentEncodings, HttpCacheability cacheability ) { cache.SetCacheability(cacheability); cache.SetExpires(httpContext.Timestamp.AddSeconds(numberOfSeconds)); cache.SetMaxAge(new TimeSpan(0, 0, numberOfSeconds)); cache.SetValidUntilExpires(true); cache.SetLastModified(httpContext.Timestamp); cache.SetSlidingExpiration(sliding); if (varyByParams != null) { foreach (var p in varyByParams) { cache.VaryByParams[p] = true; } } if (varyByHeaders != null) { foreach (var headerName in varyByHeaders) { cache.VaryByHeaders[headerName] = true; } } if (varyByContentEncodings != null) { foreach (var contentEncoding in varyByContentEncodings) { cache.VaryByContentEncodings[contentEncoding] = true; } } }
internal static void OutputCache(HttpContextBase httpContext, HttpCachePolicyBase cache, int numberOfSeconds, bool sliding, IEnumerable<string> varyByParams, IEnumerable<string> varyByHeaders, IEnumerable<string> varyByContentEncodings, HttpCacheability cacheability) { cache.SetCacheability(cacheability); cache.SetExpires(httpContext.Timestamp.AddSeconds(numberOfSeconds)); cache.SetMaxAge(new TimeSpan(0, 0, numberOfSeconds)); cache.SetValidUntilExpires(true); cache.SetLastModified(httpContext.Timestamp); cache.SetSlidingExpiration(sliding); if (varyByParams != null) { foreach (var p in varyByParams) { cache.VaryByParams[p] = true; } } if (varyByHeaders != null) { foreach (var headerName in varyByHeaders) { cache.VaryByHeaders[headerName] = true; } } if (varyByContentEncodings != null) { foreach (var contentEncoding in varyByContentEncodings) { cache.VaryByContentEncodings[contentEncoding] = true; } } }
private void SetCache(HttpCachePolicyBase cache, System.Net.Http.Headers.CacheControlHeaderValue cacheIn) { if (cacheIn.Public) { cache.SetCacheability(HttpCacheability.Public); } if (cacheIn.Private) { cache.SetCacheability(HttpCacheability.Private); } if (cacheIn.MaxAge != null) { var maxAge = cacheIn.MaxAge.Value; if (maxAge.TotalDays < 1) { maxAge = TimeSpan.FromDays(30); } cache.SetCacheability(HttpCacheability.Public); cache.SetMaxAge(maxAge); cache.SetSlidingExpiration(true); } }