public TokenCache GetUserCache()
 {
     TokenCacheLock.EnterWriteLock();
     UsertokenCache.SetBeforeAccess(BeforeAccessNotification);
     UsertokenCache.SetAfterAccess(AfterAccessNotification);
     TokenCacheLock.ExitWriteLock();
     return(UsertokenCache);
 }
        public override void Persist()
        {
            TokenCacheLock.EnterWriteLock();

            UsertokenCache.HasStateChanged = false;

            _httpContext.Session.Set(_cacheId, UsertokenCache.Serialize());
            TokenCacheLock.ExitWriteLock();
        }
 public override void Load()
 {
     TokenCacheLock.EnterReadLock();
     UsertokenCache.Deserialize(_httpContext.Session.Get(_cacheId));
     TokenCacheLock.ExitReadLock();
 }