asp.net values of Session variables in Session_End event

v s picture v s · Sep 6, 2012 · Viewed 9.4k times · Source

If I store a value in a session variable

    Session["Int"] = 100;

What it will be in the Session_End event? Will it be null or 100?

void Session_End(object sender, EventArgs e)
{
      object objInt = Session["Int"];          // Null or 100 ?
}

Meaning, will Session_End fire after disposing everything in the session or just before?

Answer

Tim Schmelter picture Tim Schmelter · Sep 6, 2012

It is 100.

To test it yourself simply add the ASP.NET application file global.asax to your project and handle the Session_Start end Session-End events:

void Session_Start(object sender, EventArgs e)
{
   Session["Int"] = 100;          // 100
}

void Session_End(object sender, EventArgs e)
{
    object objInt = Session["Int"];  // it is still 100 here
}

You can end a Session by Session.Abandon() (or when it expires).

protected void Page_Load(object sender, EventArgs e)
{
    Session.Abandon();  // after this Session.End is called
}