public override SessionStateStoreData GetItem(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId,
                                                      out SessionStateActions actions)
        {
            var returnValue = _store.GetItem(context, id, out locked, out lockAge, out lockId, out actions);

            if (returnValue == null && lockId != null)
            {
                _store.ReleaseItemExclusive(context, id, lockId);
                returnValue = _store.GetItem(context, id, out locked, out lockAge, out lockId, out actions);
            }

            return(returnValue);
        }
Esempio n. 2
0
        /// <summary>
        /// Checks item expiration.
        /// </summary>
        private static void CheckExpiry(SessionStateStoreProviderBase provider)
        {
            bool                locked;
            TimeSpan            lockAge;
            object              lockId;
            SessionStateActions actions;

            // Check that item is present.
            var res = provider.GetItem(HttpContext, Id, out locked, out lockAge, out lockId, out actions);

            Assert.IsNotNull(res);

            // Wait a minute and check again.
            Thread.Sleep(TimeSpan.FromMinutes(1.05));

            res = provider.GetItem(HttpContext, Id, out locked, out lockAge, out lockId, out actions);
            Assert.IsNull(res);
        }
 public override SessionStateStoreData GetItem(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions)
 {
     var sessionStateStoreData = inProcSessionStore.GetItem(context, id, out locked, out lockAge, out lockId, out actions);
     if (sessionStateStoreData != null && sessionStateStoreData.Items.GetType() != typeof(T))
     {
         return new SessionStoreDataItemsInjector<T>(sessionStateStoreData);
     }
     return sessionStateStoreData;
 }
Esempio n. 4
0
    //...
    //...
    public override SessionStateStoreData GetItem(HttpContext context, string id, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actions)
    {
        var tmp = inProcSessionStore.GetItem(context, id, out locked, out lockAge, out lockId, out actions);

        if (tmp != null && tmp.Items.GetType() != typeof(SessionStateItemCollectionWrapper))
        {
            return(new SessionStoreDataItemsChanger(tmp));
        }
        return(tmp);
    }
Esempio n. 5
0
        /// <summary>
        /// Checks the provider.
        /// </summary>
        private static void CheckProvider(SessionStateStoreProviderBase provider)
        {
            bool                locked;
            TimeSpan            lockAge;
            object              lockId;
            SessionStateActions actions;

            provider.InitializeRequest(HttpContext);
            provider.CreateUninitializedItem(HttpContext, Id, 42);

            var data = provider.GetItem(HttpContext, Id, out locked, out lockAge, out lockId, out actions);

            Assert.IsNotNull(data);
            Assert.AreEqual(42, data.Timeout);
            Assert.IsFalse(locked);
            Assert.AreEqual(TimeSpan.Zero, lockAge);
            Assert.IsNull(lockId);
            Assert.AreEqual(SessionStateActions.None, actions);

            provider.ResetItemTimeout(HttpContext, Id);
            provider.EndRequest(HttpContext);
            provider.Dispose();
        }