internal Session( RawSession session, ISessionIdGenerator sessionIdGenerator) { _session = session; _sessionIdGenerator = sessionIdGenerator; }
public DateTime GetExpiration(RawSession session) { var idleExpiration = _dateTimeFactory.Now() + _timeoutSettings.IdleTimeout; var absoluteExpiration = session.SessionData.CreationDate + _timeoutSettings.AbsoluteTimeout; return(MinOf(absoluteExpiration, idleExpiration)); }
public void WriteCookie(IRequest request, IResponse response, RawSession session, DateTime expirationDate) { session.State.Match( @new: _ => WriteNew(request, response, session, expirationDate), existing: _ => WriteExisting(response, session, expirationDate), existingWithNewId: _ => WriteExisting(response, session, expirationDate), abandoned: _ => WriteAbandoned(request, response)); }
private void SetCookie(IResponse response, RawSession session, DateTime expirationDate) { response.SetCookie( new Cookie( _cookieSettings, session.GetId().ToString(), expirationDate)); _cacheControlHeaderWriter.AddCacheControlHeaders(response); }
private void WriteExisting(IResponse response, RawSession session, DateTime expirationDate) { if (session.IsEmpty()) { UnsetCookie(response); } else { SetCookie(response, session, expirationDate); } }
private void WriteNew(IRequest request, IResponse response, RawSession session, DateTime expirationDate) { var isSessionEmpty = session.IsEmpty(); if (!isSessionEmpty) { SetCookie(response, session, expirationDate); } else if (RequestHasSessionIdCookie(request)) { UnsetCookie(response); } }
public static SessionId GetId(this RawSession session) => session.State.Match(