asp.net values of Session variables in Session_End

2020-03-17 04:22发布

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?

2条回答
一纸荒年 Trace。
2楼-- · 2020-03-17 04:38

I found that Session["Int"] will be 100. I set the session timeout to just 1 minute and put a break point in that event.

查看更多
祖国的老花朵
3楼-- · 2020-03-17 04:44

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
}
查看更多
登录 后发表回答