How to end user session when browser closed - ºê¶ó¿ìÀú ´ÝÀ»¶§ ¼¼¼ÇÀ» ²÷´Â ¹æ¹ý
How to end user session when browser closed
Introduction
How to capture logoff time when user closes browser?
Or
How to end user session when browser closed?
Or
How to end user session when user redirects to another site?
These are some of the frequently asked questions. Normally this is the requirement of any application. There is no fool-proof technique to catch the browser close event for 100% of the time. The trouble lies in the stateless nature of HTTP. I am explaining one of them which is very effective and tested.
I updated the article and now it support all kind of browser .
Using the Code
1. First create a page LogOut.aspx and in Page_Load
event, write this code:
protected void Page_Load(object sender, EventArgs e)
{
Session.Abandon();
}
2. Then add the following JavaScript code in your page or Master Page:
<script type="text/javascript">
var clicked = false;
function CheckBrowser()
{
if (clicked == false)
{
//Browser closed
} else
{
//redirected
clicked = false;
}
}
function bodyUnload()
{
if (clicked == false)//browser is closed
{
var request = GetRequest();
request.open ("POST", "../LogOut.aspx", false);
request.send();
}
}
function GetRequest()
{
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
</script>
3. Add the following code in the body
tag of master page:
<body onunload="bodyUnload();" Onclick="clicked=true;">
Finally the code in Master page like this:
<script language="javascript" type="text/javascript">
//<![CDATA[</span />
var clicked = false;
function CheckBrowser() {
if (clicked == false) {
//Browser closed
}
else {
//redirected
clicked = false;
}
}
function bodyUnload() {
if (clicked == false)//browser is closed
{
var request = GetRequest();
request.open("POST", "../LogOut.aspx", false);
request.send();
alert('This is close');
}
}
function GetRequest() {
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
}
else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
</script>
<body onunload="bodyUnload();" onclick="clicked=true;"><span style="font-size: 9pt;"> </span>
<form id="form1" runat="server">
License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)