Очистить сессию в ASP.Net - PullRequest
0 голосов
/ 09 июня 2010

Я хочу очистить сеанс при выгрузке страницы.

Вот условие:

  • Если пользователь переходит со страницы A на страницу B одного и того же сеанса сайта, он не должен очищаться.
  • Если пользователь закрывает окно браузера или вкладку (закрывает сайт), сеанс должен быть очищен.

Я пытался использовать AJAX PageMethod для вызова серверной процедуры для удаления сеанса из сценария на стороне клиента. Но процедура не получает удар, я проверил ее с помощью точки останова.

процедура на стороне сервера находится в файле master.cs

Буду признателен за вашу помощь.

Вот код в site.master

<body onunload="HandleClose();">
    <script type="text/javascript">
        function HandleClose()
        {            
            PageMethods.AbandonSessions();
        }

и вот код в master.cs:

[System.Web.Services.WebMethod]
        public static void AbandonSessions()
        {

            HttpContext.Current.Session.Abandon();

        }

1 Ответ

0 голосов
/ 09 июня 2010

Вам необходимо зарегистрировать событие javascript для выгрузки страницы и отправить запрос AJAX для очистки сеанса. Это событие срабатывает, когда пользователь закрывает окно или вкладку браузера. Вот пример страницы :

<html> 
<head> 
<script type="text/javascript"> 
function clearSession() {
    // TODO: Send an AJAX call to a server side script 
    // that will clear the session
}
</script> 

</head> 
<body onunload="clearSession();"> 

</body> 
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...