System.Web.SessionState (system.web.dll)sealed class

The HttpSessionState class provides server-side state management that is stored on a per-client basis. The HttpSessionState class exposes a key/value collection of items that can store simple value types or instances of any serializable .NET class. You can also store instances of your own custom objects in session state, provided you make them serializable by adding the SerializableAttribute to the class declaration. You can add and access items in the HttpSessionState collection as you would with other ASP.NET collections, including System.Web.HttpApplicationState and System.Web.Caching.Cache. Unlike these classes, session state can be stored outside of the main ASP.NET process. This allows it to be shared across multiple computers in a web farm and persist after server restarts.

The HttpSessionState class combines two state collections: Contents and StaticObjects. The StaticObjects collection contains the application state objects that are defined in the global.asax file with <object runat="server"> tags. This collection is immutable. The Contents collection contains all the state objects added at runtime.

The Item collection is the default indexer for HttpSessionState, so you can use the name of a state object as an index, as in: Session["userName"] = "Lucy";. If you assign a value to a state object that does not exist, it is created automatically. Items are stored as the generic System.Object type and must be cast to the appropriate types when you retrieve them.

Other properties allow you to get information about whether or not the session has just been created with the current request (IsNewSession) and what type of session ID transmission (IsCookieless) and session storage (Mode) is being used. You can use the SessionID property to retrieve the session ID string, but you will not need to, as it is created and managed automatically by the ASP.NET framework. A reference is provided to the HttpSessionState class through the built-in Session object. Use Abandon( ) to end a session immediately and release memory occupied by session state objects without waiting for the session to time out.

public sealed class HttpSessionState : ICollection, IEnumerable {
// Public Instance Properties
   public int CodePage{set; get; }
   public HttpSessionState Contents{get; }
   public int Count{get; }                          // implements ICollection
   public bool IsCookieless{get; }
   public bool IsNewSession{get; }
   public bool IsReadOnly{get; }
   public bool IsSynchronized{get; }                // implements ICollection
   public KeysCollection Keys{get; }
   public int LCID{set; get; }
   public SessionStateMode Mode{get; }
   public string SessionID{get; }
   public HttpStaticObjectsCollection StaticObjects{get; }
   public object SyncRoot{get; }                    // implements ICollection
   public object this[int index]{set; get; }
   public object this[string name]{set; get; }
   public int Timeout{set; get; }
// Public Instance Methods
   public void Abandon( );
   public void Add(string name, object value);
   public void Clear( );
   public void CopyTo(Array array, int index);                  // implements ICollection
   public IEnumerator GetEnumerator( );              // implements IEnumerable
   public void Remove(string name);
   public void RemoveAll( );
   public void RemoveAt(int index);

Returned By

System.Web.HttpApplication.Session, System.Web.HttpContext.Session, System.Web.Services.WebService.Session, System.Web.UI.Page.Session, System.Web.UI.UserControl.Session

    Part I: Introduction to ASP.NET
    Part III: Namespace Reference
    Chapter 40. The System.Web.UI.MobileControls Namespace
    Chapter 42. The System.Web.UI.WebControls Namespace