Hi!
Please note that whenever a client accesses the web application, he is infact living in a session. Unless the session timeouts or you forcefully abandons it, it lives up with the client.
Now we put up some key,value pairs in to the Session object for our own requirements.
So, when a user with "expired" session comes, the web application is, infact, going to start a new session for the same guy. So the Session_Start event of global.asax will fire. So you can handle the logic in the global.asax page or you can put in checks in your pages like Session.IsNewSession to make sure that this request is coming from a client who is
1.) Either new
2.) Previously his session expired and is going to start a new session.
Hope it helps.