Как отловить конец сессии при нажатии кнопки закрытия строки заголовка 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();