1

Я использую переменную сеанса для хранения некоторых данных. Я хочу, чтобы данные были потеряны при закрытии браузера или сбое сеанса. Все работает в IE и FF, но хром сохраняет переменные сеанса после закрытия браузера.Переменные сеанса в Google Chrome сохраняются после закрытия браузера

var myName = Session["Name"]; 

if (myName == null) { 
    myName = "defaultName"; 

} 

Он не попадет в блок if, если я закрываю и снова открываю хром, поскольку переменная сеанса сохраняется. Есть ли способ гарантировать, что переменные сеанса теряются после закрытия хрома Google?

+1

Может быть, у вас есть еще одно окно Google Chrome до сих пор открытым или, например, значок уведомлений в трее, так что, хотя Google Chrome закрыт, процесс все еще запущен? (Попробуйте проверить с помощью диспетчера задач для процессов Chrome). –

ответ

3

Помните, что HTTP - это протокол без состояния, поэтому вы не можете определить, закрыл ли пользователь браузер или открыло окно браузера. Это причина, по которой мы использовать тайм-аут сеансов - вы можете уменьшить таймаут, чтобы закрыть неактивные сеансы, но это может привести к тому, что другие пользователи будут отключены.

Закрывающий браузер не означает, что сеанс уничтожен. Но он будет уничтожен после некоторого простоя.

Прочитайте это: Session Handling для некоторых работ вокруг методов о том, как обрабатывать времени ожидания сеанса лучше

+0

Да, я подумал, что это что-то вроде этого. Мне было любопытно, почему закрытие firefox или IE мгновенно убивает сессию, а с помощью хрома он уничтожается через некоторое время. – Mefhisto1

+0

правильные, сеансовые ауты необходимо управлять. Более высокие версии IE или Firefox могут мгновенно убивать сеансы, но версии с понижением могут отсутствовать. –

Смежные вопросы