Browser Close Vs Session End in ASP.net
After a few R&D’s here goes my findings
There are n number of scenarios by which the browser can be closed viz
1.       Clicking the (x) button
2.       Clicking Alt+F4
3.       File menu à Exit.
4.       Alt+f+x
The OnUnload event will fire for all the above scenarios. So write a Javascript function like this which uses Remote scripting to Abandon the session in the Server side.
function abandonSession()
{
      // Use remote scripting to
        var xmlhttp;
        if (window.ActiveXObject)
        { // IE
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            xmlhttp.open("GET","AbandonSession.aspx",false);
            xmlhttp.send();
        }
}
Attach the above function in the HTML as shown below
In the page load of AbandonSession.aspx
   protected void Page_Load(object sender, EventArgs e)
   {
            Session.Abandon();
// Write your code to logout the user since sometimes Session_End may not fire. Also Session_Event in Global.asax will not fire in Web farms.
   }
However the weird thing is the OnUnload event also fires  during following scenarios
1.       When F5 or Page refresh is done
2.       When the user types a different url in the same browser
3.       Page is submitted or Post back happens
4.       Click the browser back
So somehow you need to figure out a way which will not execute the abandonSession() function for all the above scenarios.
 
Thursday, November 6, 2008
Subscribe to:
Post Comments (Atom)
 
No comments:
Post a Comment