public void Apply(HttpCachePolicyBase policy) { policy.ThrowIfNull("policy"); if (!_hasPolicy) { return; } switch (_cacheability) { case HttpCacheability.NoCache: policy.SetCacheability(_allowsServerCaching == true ? HttpCacheability.ServerAndNoCache : HttpCacheability.NoCache); break; case HttpCacheability.Private: policy.SetCacheability(_allowsServerCaching == true ? HttpCacheability.ServerAndPrivate : HttpCacheability.Private); break; case HttpCacheability.Public: policy.SetCacheability(HttpCacheability.Public); break; } if (_noStore == true) { policy.SetNoStore(); } if (_noTransforms == true) { policy.SetNoTransforms(); } if (_clientCacheExpirationUtcTimestamp != null) { policy.SetExpires(_clientCacheExpirationUtcTimestamp.Value); } if (_clientCacheMaxAge != null) { policy.SetMaxAge(_clientCacheMaxAge.Value); } if (_allowResponseInBrowserHistory != null) { policy.SetAllowResponseInBrowserHistory(_allowResponseInBrowserHistory.Value); } if (_eTag != null) { policy.SetETag(_eTag); } if (_omitVaryStar != null) { policy.SetOmitVaryStar(_omitVaryStar.Value); } if (_proxyMaxAge != null) { policy.SetProxyMaxAge(_proxyMaxAge.Value); } if (_revalidation != null) { policy.SetRevalidation(_revalidation.Value); } }
private static void InvalidateCache(HttpCachePolicyBase cache) { cache.SetExpires(DateTime.UtcNow.AddDays(-1)); cache.SetValidUntilExpires(false); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); cache.SetCacheability(HttpCacheability.NoCache); cache.SetNoStore(); }
public static void CacheResponseFor(this HttpContextBase context, TimeSpan duration) { HttpCachePolicyBase cache = context.Response.Cache; cache.SetCacheability(HttpCacheability.Public); cache.SetLastModified(context.Timestamp); cache.SetExpires(context.Timestamp.Add(duration)); cache.SetMaxAge(duration); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); }
public override void OnActionExecuted(ActionExecutedContext filterContext) { HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache; cache.SetExpires(DateTime.UtcNow.AddDays(-1)); cache.SetValidUntilExpires(false); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); cache.SetCacheability(HttpCacheability.NoCache); cache.SetNoStore(); }
public new void OnResultExecuted(ResultExecutedContext filterContext) { HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache; cache.SetCacheability(HttpCacheability.NoCache); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); cache.SetValidUntilExpires(false); cache.SetExpires(DateTime.UtcNow.AddDays(-1)); cache.SetNoStore(); cache.AppendCacheExtension("private"); cache.AppendCacheExtension("no-cache=Set-Cookie"); cache.SetProxyMaxAge(TimeSpan.Zero); }
/// <summary> /// Caches the specified instance. /// </summary> /// <param name="instance">The instance.</param> /// <param name="duration">The duration.</param> public static void Cache(this HttpContextBase instance, TimeSpan duration) { HttpCachePolicyBase cache = instance.Response.Cache; cache.SetCacheability(HttpCacheability.Public); cache.SetOmitVaryStar(true); cache.SetExpires(instance.Timestamp.Add(duration)); cache.SetMaxAge(duration); cache.SetValidUntilExpires(true); cache.SetLastModified(instance.Timestamp); cache.SetLastModifiedFromFileDependencies(); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); }
/// <summary> /// Set the caching policy. /// </summary> /// <param name="context">The context.</param> /// <param name="duration">The duration.</param> public void Cache(HttpContextBase context, TimeSpan duration) { if ((duration > TimeSpan.Zero) || !context.IsDebuggingEnabled) // Do not cache in debug mode. { HttpCachePolicyBase cache = context.Response.Cache; cache.SetCacheability(HttpCacheability.Public); cache.SetOmitVaryStar(true); cache.SetExpires(context.Timestamp.Add(duration)); cache.SetMaxAge(duration); cache.SetValidUntilExpires(true); cache.SetLastModified(context.Timestamp); cache.SetLastModifiedFromFileDependencies(); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); } }
public override void OnActionExecuted(ActionExecutedContext filterContext) { if (Duration <= 0) { return; } HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache; TimeSpan cacheDuration = TimeSpan.FromSeconds(Duration); cache.SetNoStore(); cache.SetCacheability(HttpCacheability.NoCache); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); cache.AppendCacheExtension("post-check=0, pre-check=0"); //cache.SetVaryByCustom("lang"); //cache.SetExpires(DateTime.Now.Add(cacheDuration)); //cache.SetMaxAge(cacheDuration); }
protected void SendOuptToClient(HttpContextBase context) { HttpResponseBase response = context.Response; HttpCachePolicyBase cache = context.Response.Cache; cache.SetETag(_etagCacheKey); cache.SetLastModified(_lastModify); cache.SetExpires(NetworkTime.Now.AddDays(_durationInDays)); // For HTTP 1.0 browsers cache.SetOmitVaryStar(true); cache.SetMaxAge(TimeSpan.FromDays(_durationInDays)); //cache.SetLastModified(NetworkTime.Now); cache.SetValidUntilExpires(true); cache.SetCacheability(HttpCacheability.Public); cache.SetRevalidation(HttpCacheRevalidation.AllCaches); cache.VaryByHeaders["Accept-Encoding"] = true;// Tell proxy to cache different versions depending on Accept-Encoding response.ContentType = "application/json"; if (response.IsClientConnected) { response.Flush(); } }