Уничтожение сеанса при закрытии браузера из панели задач

Когда я закрываю окно браузера на панели задач, сеанс не разрушается. Я мог бы справиться с этим, закрыв браузер с помощью кнопки закрытия (X) или нажав Alt + F4 с помощью javascript. Но из панели задач, если я закрою окно, как я могу очистить сеанс? Проблема возникает только тогда, когда перед закрытием текущего окна уже открыто другое окно браузера. Когда я получаю доступ к приложению, оно напрямую переходит на страницу, к которой ранее обращались, поскольку сеанс все еще действителен.

Любая помощь приветствуется.


person Community    schedule 17.11.2009    source источник


Ответы (2)


Вы не можете - сеанс находится на стороне сервера, и браузер не сообщает серверу, когда он завершается.

Обычный способ - установить тайм-аут для сеанса, т. Е. Если браузер не обращался к серверу в течение X минут, сеанс закрывается.

person David Rabinowitz    schedule 17.11.2009
comment
Я видел случаи, когда тайм-аут сеанса был установлен очень низким, порядка одной минуты, когда браузер отправлял на сервер регулярный пинг ajax, чтобы сеанс оставался открытым. Может быть полезно в тех случаях, когда вам нужно знать, когда браузер закрыт, и вам нужно это узнать относительно быстро. - person skaffman; 17.11.2009
comment
спасибо, Дэвид, но дело в том, что тайм-аут сеанса для приложения должен составлять 30 минут, что уже установлено. :( - person ; 17.11.2009

Возможно, вы можете использовать cookie сеанса на стороне клиента в дополнение к механизму управления сеансом на стороне сервера, возможно, для хранения «идентификатора сеанса» и его проверки на соответствие сеансам на стороне сервера. Файл cookie будет уничтожен при выходе из браузера, поэтому второе окно не сможет продолжить сеанс, поскольку «идентификатор сеанса» исчез.

person Lukman    schedule 17.11.2009