private void OnBeforeAccess(TokenCacheNotificationArgs args) { var serializedCacheItem = cache.GetString(CacheKey); if (serializedCacheItem == null) { return; } var cacheItem = JsonConvert.DeserializeObject <UserTokenCacheItem>(serializedCacheItem); if (currentCacheItem == null || currentCacheItem.LastWrite < cacheItem.LastWrite) { currentCacheItem = cacheItem; Deserialize(currentCacheItem.Payload); } }
private void OnAfterAccess(TokenCacheNotificationArgs args) { if (HasStateChanged) { var cacheItem = new UserTokenCacheItem { Payload = Serialize(), LastWrite = DateTimeOffset.Now }; var cacheOptions = new DistributedCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan.FromDays(14) }; cache.SetString(CacheKey, JsonConvert.SerializeObject(cacheItem), cacheOptions); HasStateChanged = false; } }