I'd like to set the Cache-Control
header to public
in my ASP.NET (MVC) app. The problem is that there is code (that I can't change) that previously set the cache policy like this:
var response = htmlHelper.ViewContext.HttpContext.Response;
response.Cache.SetExpires(System.DateTime.UtcNow.AddDays(-1));
response.Cache.SetValidUntilExpires(false);
response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
response.Cache.SetCacheability(HttpCacheability.NoCache);
response.Cache.SetNoStore();
I can't find a way to override this later, because no matter how I try to set cache control, the above will take effect. E.g. neither of the following can counter caching being disabled previously:
httpContext.Response.Headers["Cache-Control"] = "public";
var cache = httpContext.Response.Cache;
cache.SetExpires(cacheItem.ValidUntilUtc);
cache.SetValidUntilExpires(true);
cache.SetRevalidation(HttpCacheRevalidation.None);
cache.SetCacheability(HttpCacheability.Public);
cache.SetMaxAge(cacheItem.ValidUntilUtc - _clock.UtcNow);
Is there a way to somehow override or reset the cache policy?