закрытие всех веб-страниц по истечении времени сеанса - PullRequest
1 голос
/ 18 декабря 2009

Когда тайм-аут сеанса в приложении asp.net, нам нужно закрыть все веб-страницы, которые уже открыты пользователем.

Каждая страница имеет ссылку для выхода. Когда пользователь нажимает на эту ссылку, домашняя страница перенаправляется на эту страницу.

В этом случае другие открытые страницы также должны быть закрыты.

Как мы можем это сделать?

Ответы [ 3 ]

1 голос
/ 18 декабря 2009

Для всех страниц:

  1. AJAX перезвонит на сервер, чтобы проверить, не истек ли сеанс.
  2. Результат разбора AJAX
  3. Если сессия закончилась, закройте окно или перенаправьте на страницу выхода из системы.
0 голосов
/ 18 декабря 2009

Как прокомментировал Раззи, выполнение обратного вызова AJAX для того же веб-приложения поддержит сеанс. Использование веб-сервиса также не решит проблему.

Это решение позволяет избежать поддержания сеанса:

  • Хранить каждый сеанс в базе данных. Это можно сделать в событии Session_Start в Global.asax или после входа в систему.
  • Удаление тайм-аут сеансов из базы данных в событии Session_End в файле Global.asax или после выхода из системы.
  • Выполнять периодический обратный вызов AJAX для другого веб-приложения, например веб, работающий на поддомене, чтобы проверить в базе данных, существует ли еще сеанс.

Я предлагаю вам использовать SessionID для идентификации сессий.

0 голосов
/ 18 декабря 2009

Со второй мысли ... мы можем использовать то, что сказал @thephpdeveloper, особенно когда пользователь формально выходит из системы ... (например, нажимая кнопку выхода из системы) Один раз после того, как происходит официальный выход из системы ... Такой Ajax Callback может быть используется, потому что сеанс будет действительным, но не будет никакого пользователя ... Используя это, мы можем сигнализировать о странице и закрыть окно браузера

...