//public bool TryCreateSession(Session session) //{ // SessionCreating?.Invoke(this, new SessionArgs(session)); // if (session == null) // return false; // if (String.IsNullOrWhiteSpace(session.Id)) // session.Id = Guid.NewGuid().ToString(); // if (session.ExpireTime == default(DateTime)) // { // session.ExpireTime = DateTime.Now.AddMinutes(20); // } // _context.Response.Cookies.Add(new Cookie(COOKIE_SESSION_ID, session.Id) { Expires = session.ExpireTime }); // //_sessionDictionary.AddOrUpdate(session.Id, session, (x, y) => y); // if (_sessionDictionary.TryAdd(session.Id, session)) // { // _context.Session = session; // SessionCreated?.Invoke(this, new SessionArgs(session, true)); // return true; // } // SessionClosed?.Invoke(this, new SessionArgs(session, false)); // return false; //} public bool TryRemoveSession(string sessionId) { SessionCloseing?.Invoke(this, new SessionArgs(new Session(sessionId))); if (_sessionDictionary.TryRemove(sessionId, out var session)) { _context.Response.Cookies.Remove(sessionId); //_context.Session = null; SessionCreated?.Invoke(this, new SessionArgs(new Session(sessionId), true)); return(true); } SessionCreated?.Invoke(this, new SessionArgs(new Session(sessionId), false)); return(false); }
public bool TryRemoveSession(Session session) { SessionCloseing?.Invoke(this, new SessionArgs(session)); if (_sessionDictionary.TryRemove(session.Id, out var value)) { _context.Response.Cookies.Remove(session.Id); session = null; //_context.Session = null; SessionClosed?.Invoke(this, new SessionArgs(value, true)); return(true); } session = value; //_context.Session = value; SessionClosed?.Invoke(this, new SessionArgs(value, false)); return(false); }
public bool TryRemoveSession() { Cookie cookie; if ((cookie = _context.Response.Cookies[COOKIE_SESSION_ID]) == null) { return(false); } SessionCloseing?.Invoke(this, new SessionArgs(null)); if (_sessionDictionary.TryRemove(cookie.Name, out var session)) { _context.Response.Cookies.Remove(cookie.Name); //_context.Session = null; SessionClosed?.Invoke(this, new SessionArgs(session, true)); return(true); } SessionClosed?.Invoke(this, new SessionArgs(session, false)); return(false); }