Ejemplo n.º 1
0
        //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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }