public session GetSession(HttpContextBase httpContext, bool checkUser, bool checkAdmin) { HttpCookie cookie = httpContext.Request.Cookies.Get(SessionName); session result; string _sessionID; Guid _sessionGUID; if (cookie != null)//checks if cookie is null { _sessionID = cookie.Value; if (Guid.TryParse(_sessionID, out _sessionGUID)) { if (_sessionGUID != null)//checks if Guid is null { var sessionList = sessions.GetAll(); session _session = new session(); bool tryResult = false; try //checks if Guid is in database { _session = sessionList.Where(s => s.sessionGUID.Contains(_sessionID)).FirstOrDefault(); tryResult = !(_session.Equals(default(session))); } catch (Exception e) { Console.WriteLine("An error occurred: '{0}'", e); } if (tryResult)//session found in database { //Redirect to login page if user is not authorized if (checkUser || checkAdmin) { RedirectUser(_session, httpContext, checkAdmin); } cookie.Expires = DateTime.Now.AddDays(1);//update cookie expiry date return(_session); } ; } } } //Session not found, create new result = createNewSession(httpContext); return(result); }