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); }