public override void CreateUninitializedItem(HttpContext context, string id, int timeout) { RedisSessionState state = new RedisSessionState(null, null, timeout); RedisBase.Item_Set <string>(id, state.ToJson()); RedisBase.ExpireEntryAt(id, DateTime.Now.AddMinutes(timeout.TryToDouble())); }
private SessionStateStoreData DoGet(HttpContext context, string id, bool exclusive, out bool locked, out TimeSpan lockAge, out object lockId, out SessionStateActions actionFlags) { locked = false; lockId = null; lockAge = TimeSpan.Zero; actionFlags = SessionStateActions.None; RedisSessionState state = RedisSessionState.FromJson(RedisBase.Item_Get <string>(id)); if (state == null) { return(null); } RedisBase.ExpireEntryAt(id, DateTime.Now.AddMinutes(state._timeout.TryToDouble())); return(CreateLegitStoreData(context, state._sessionItems, state._staticObjects, state._timeout)); }
public override void SetAndReleaseItemExclusive(HttpContext context, string id, SessionStateStoreData item, object lockId, bool newItem) { ISessionStateItemCollection sessionItems = null; HttpStaticObjectsCollection staticObjects = null; if (item.Items.Count > 0) { sessionItems = item.Items; } if (!item.StaticObjects.NeverAccessed) { staticObjects = item.StaticObjects; } RedisSessionState state2 = new RedisSessionState(sessionItems, staticObjects, item.Timeout); RedisBase.Item_Set(id, state2.ToJson()); RedisBase.ExpireEntryAt(id, DateTime.Now.AddMinutes(item.Timeout.TryToDouble())); }