Как принудительно удалить куки, даже если одно окно все еще открыто? - PullRequest
2 голосов
/ 15 июня 2010

По-видимому, в IE8 есть опция «Сохранить данные избранного сайта», даже если я сниму флажок, браузер будет сохранять куки до закрытия последнего окна.

Сценарий проблемы.скажем, я вошел на somesite.com, затем, не выходя из системы, я закрыл окно, но там было еще одно открытое окно IE8.В этом случае IE8 будет хранить куки этого сайта.Поэтому, если я снова открою сайт (в том же окне или в другом), он не будет запрашивать информацию для входа.

Клиент хочет, чтобы веб-приложение вышло из системы, как только пользователь закроет браузер.Могу ли я принудительно удалить куки, которые IE8 сохраняет?или, может быть, я могу запретить пользователю закрывать окно, пока я не симулирую нажатие кнопки выхода из системы?

Ответы [ 3 ]

2 голосов
/ 15 июня 2010

Спасибо всем, я перепробовал много методов, в том числе и ваш, и не смог заставить его работать.

Мое решение было следующим: когда пользователь нажимает кнопку X (закрытие браузера), JavaScript onunload функция будет вызвана.Эта функция имитирует нажатие кнопки logout.Функция приостанавливает работу браузера до тех пор, пока не будет выполнен выход из системы.

Код:

window.onunload = function() {
    document.getElementById('logoutLink').click();
    windows.setTimeout(doNothingFunction,2000);
}

Одним из побочных эффектов является то, что эта функция будет вызываться при каждом переходе пользователя с текущей страницы, не только при закрытии окна.
Решение, при переходе от страницы к странице флаг, а именно closingWindow, устанавливается на false.Но когда пользователь нажимает кнопку X, флаг не будет установлен в значение false.

Новая функция для устранения побочного эффекта.

window.onunload = function() {
    if (closingWindow){
        document.getElementById('logoutLink').click();
        windows.setTimeout(doNothingFunction,2000);
    }
}
1 голос
/ 15 июня 2010

Вы можете контролировать существование окна, отправляя бесплатные запросы ajax.Когда клиент загружает новую страницу, вы должны проверить время последнего запроса на проверку.

1 голос
/ 15 июня 2010

Можете ли вы установить cookie с отрицательной датой истечения в событии onunload браузера?

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