Member 8232678 Ответов: 1

Истечение срока действия сеанса при закрытии браузера или вкладки в 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[^]

1 Ответов

Рейтинг:
1

F-ES Sitecore

Если бы это было возможно не так ли asp.net сделал бы это из коробки? Сколько бы раз ни задавался этот вопрос, он все равно невозможен, потому что именно так работает интернет. Вам нужно перестроить свое решение, чтобы придумать что-то, что не требует завершения сеанса при закрытии браузера или вкладки.