public static void InsertOutputIntoCache(double absoluteExpiration, double slidingExpiration, string cacheKey, object output, CacheDependency cacheDependency, CacheItemPriority priority) { // -1 means it comes from web config var absBase = absoluteExpiration == -1 ? OutputCache.GetAbsoluteExpirationSeconds() : absoluteExpiration; var slidingBase = slidingExpiration == -1 ? OutputCache.GetSlidingExpirationSeconds() : slidingExpiration; // 0 means no caching var abs = absBase == 0 ? Cache.NoAbsoluteExpiration : DateTime.UtcNow.AddSeconds((double)absBase); var sliding = slidingBase == 0 ? Cache.NoSlidingExpiration : TimeSpan.FromSeconds((double)slidingBase); if (abs != Cache.NoAbsoluteExpiration && sliding != Cache.NoSlidingExpiration) { sliding = Cache.NoSlidingExpiration; } DistributedApplication.Cache.Insert(cacheKey, output, cacheDependency, abs, sliding, priority, null); }
public static bool CanCache(bool cacheableForLoggedInUser) { if (OutputCache.DisableCache()) { return(false); } if (User.Current.Id == User.Visitor.Id) { return(true); } if (!cacheableForLoggedInUser) { return(false); } return(PortalContext.Current.LoggedInUserCacheEnabled); }