Exemple #1
0
        public IHttpResponse Handle(IHttpContext context)
        {
            string sessionIdToSend = null;

            if (!context.Request.Cookies.ContainsKey(SessionStorage.SessionKey))
            {
                var sessionId = Guid.NewGuid().ToString();

                context.Request.Session = SessionStorage.GetSession(sessionId);

                sessionIdToSend = sessionId;
            }

            var httpResponse = this.func(context.Request);

            if (sessionIdToSend != null)
            {
                httpResponse.Headers.Add("Set-Cookie", $"{SessionStorage.SessionKey}={sessionIdToSend}; HttpOnly; path=/");
            }

            foreach (var cookie in httpResponse.Cookies)
            {
                httpResponse.Headers.Add("Set-Cookie", cookie.ToString());
            }

            return(httpResponse);
        }
        private string SetRequestSession(IHttpRequest request)
        {
            string sessionId = null;

            if (!request.Cookies.ContainsKey(SessionStorage.SessionCookieKey))
            {
                sessionId       = Guid.NewGuid().ToString();
                request.Session = SessionStorage.GetSession(sessionId);
            }

            return(sessionId);
        }