public void Initialize(IPipelines pipelines) { var store = new SessionCacheMemory(); pipelines.BeforeRequest.AddItemToStartOfPipeline(ctx => LoadSession(ctx, store)); pipelines.AfterRequest.AddItemToEndOfPipeline(ctx => SaveSession(ctx, store)); }
private static void SaveSession(NancyContext context, SessionCacheMemory sessionStore) { var sessionId = context.Request.Cookies.ContainsKey(CookieName) ? context.Request.Cookies[CookieName] : Guid.NewGuid().ToString(); sessionStore.Save(sessionId, context.Request.Session, context.Response); }
private static Response LoadSession(NancyContext context, SessionCacheMemory sessionStore) { context.Request.Session = sessionStore.Load(context); return(null); }