Управление тайм-аутами сеансов в ASP.NET при использовании ASP.NET GenericHandlers - PullRequest
4 голосов
/ 05 января 2010

Например, у меня есть веб-приложение, использующее jQuery в качестве платформы на стороне клиента. Теперь большинство страниц работают с помощью AJAX и взаимодействуют с сервером с помощью универсальных обработчиков (.ashx).

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

Например, пользователь вошел в систему, оставил свой браузер на 15 минут, а затем нажал кнопку, которая создаст запрос к обработчику, теперь со стороны сервера, когда я пытаюсь прочитать переменную сеанса, очевидно, это будет пусто (сеанс истек). Каков наилучший способ перенаправить пользователя обратно на страницу входа.

1 Ответ

2 голосов
/ 05 января 2010

Мы обращаемся к этой ситуации немного другим подходом. Вместо того, чтобы пытаться заставить все вызовы jQuery справляться с этим типом ошибки, мы реализовали параллельную систему тайм-аута на клиенте с использованием javascript. За минуту до истечения времени ожидания сеанса ASP.NET в браузере появляется диалоговое окно с предупреждением для пользователя: «Вы были неактивны и собираетесь выйти из системы. Нажмите здесь, чтобы остаться в системе». Мы также включили небольшой отсчет в диалоге. Если они нажимают, чтобы оставаться в системе, мы отправляем еще один вызов jQuery на сервер для сброса времени ожидания сеанса.

Таким образом, если пользователь не отключил JavaScript (в этом случае приложение все равно не работает), мы не можем сделать вызов jQuery после истечения времени ожидания сеанса ASP.NET.

...