Истечение срока действия сеанса при закрытии браузера или вкладки в ASP.NET
Я хочу, чтобы истек сеанс при закрытии браузера или вкладки в asp.net-да. Я пробовал следующие решения, которые не удовлетворяют моему требованию.Проблема в том, что метод выгрузки вызывается даже при переходе с одной страницы на другую или при обновлении страницы. Таким образом, он аннулирует сеанс каждый раз, когда пользователь переходит на другую страницу.
Что я уже пробовал:
<big>Solution 1:</big> <body onunload="bodyUnload();" Onclick="clicked=true;"> <script type="text/javascript"> var 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> <big>Solution 2 :</big>
функция ajaxFunction()
{
вар для xmlhttp;
пробовать
{
// Firefox, Opera 8.0+, Safari
xmlHttp=новый XMLHttpRequest();
}
улов (е)
{
// обозреватель Internet Explorer
пробовать
{
для xmlhttp=новый activexobject("msxml2 описывается.Для xmlhttp");
}
улов (е)
{
пробовать
{
xmlHttp=новый ActiveXObject("Microsoft.XMLHTTP");
}
улов (е)
{
предупреждение("Ваш браузер не поддерживает AJAX!");
возвращать false;
}
}
}
xmlHttp.onreadystatechange=функция()
{
if(xmlHttp.readyState==4)
{
документ.ссылки.время.значение=метод xmlhttp.responseText;
}
}
xmlHttp.open("GET","customer_logout.php",правда);
для xmlhttp.отправить(нуль);
}
Richard Deeming
Ответ не изменился с тех пор как вы спросили в основном то же самое два года назад:
https://www.codeproject.com/Questions/1069887/How-to-detect-browser-close-button-in-master-page[^]