Как отловить конец сессии при нажатии кнопки закрытия строки заголовка asp.net C#

У меня есть вопрос по поводу веб-приложения asp.net. Веб-приложение, которое использует состояние сеанса SQL Server. Событие выхода может удалить сеанс, но нажмите кнопку закрытия строки заголовка, чтобы удалить сеанс. Какие события могут контролировать, когда нажмите кнопку закрытия строки заголовка. Я читал о том, что session_end событие может поймать при нажатии кнопки закрытия строки заголовка Но не может возникнуть событие session_end с использованием состояния сеанса сервера sql. Как можно поймать?

1 ответ

Закрытие браузера не завершает сеанс на сервере, сервер не может определить разницу между открытым или закрытым браузером, он просто получает запрос, а затем отправляет ответ и сидит там в ожидании другого запроса. По истечении определенного времени без запросов сеанс истекает и запускается событие session_end.

Если вы хотите завершить сеанс, то при закрытии браузера вам нужно будет отправить какую-нибудь ajax-запрос обратно на сервер, чтобы сервер знал, чтобы завершить сеанс.

РЕДАКТИРОВАТЬ

вы можете сделать что-то подобное, используя jQuery

$(window).unload(function() {
  $.post('someurl');
});

замените someurl на URL-адрес действия веб-службы, обработчика или контроллера mvc или аналогичного, который сообщает серверу, что браузер был закрыт.

Тогда на стороне сервера вы просто делаете

Session.Abandon();
Другие вопросы по тегам