2008-11-02 1 views
1

Следующий вопрос, который я задал в своем блоге несколько месяцев назад, но я до сих пор не получил правильного ответа. Затем пару дней назад меня спросили, есть ли у меня ответ, поэтому я решил скопировать вопрос здесь, где он будет получать гораздо больше информации от разработчиков, готовых и умеющих. В любом случае, здесь идет ...Как обрабатывать таймауты сеанса при использовании веб-элементов управления AJAX на странице Aspx?


Я работаю на веб-приложение ASP.NET, которое использует AJAX Control Toolkit управления, чтобы расширить удобство применения. Кроме того, приложение является серьезным бизнес-приложением, которое требует безопасности, включая шифрование, аутентификацию и авторизацию. И сеанс HTTP - сеанс режима InProc, срок действия которого истекает 20 минут.

Это, конечно, означает, что если пользователь покинет страницу в своем браузере более 20 минут, сеанс истек, и любое сообщение обратно на сервер перенаправит браузер на страницу входа. Однако, если на странице, например, содержится элемент управления AutoCompleteExtender от AJAX Control Toolkit, пользователь может вернуться в свой браузер и начать использовать функциональность расширителя, требуя позади обратных вызовов сцены, но поймет, что элемент управления просто не работает - ошибка не перенаправляется на страницу входа !?


Как я уже сказал, у меня нет решения, так что я в конечном итоге поставив SessionExpiredMonitor (от Herr Ziffer) на всех своих страницах (в моем MasterPage), что приводит к каждой странице авто подписания в 19 минут, а затем перенаправление браузера на страницу входа. Тем не менее, я не считаю, что это решение, поэтому, если вы можете это понять, пожалуйста, дайте мне знать. Большое спасибо.

ответ

1

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

0

Что случилось с перенаправлением пользователя на страницу входа в систему после того, как его сеанс действительно истек? С точки зрения пользователя, я действительно предпочитаю это, не замечая истекшего сеанса, заполняя слишком длинную форму и фактически замечая истечение срока действия submit. Это, по крайней мере, очень удобное для пользователя решение проблемы.

0

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

Вы можете расширить функциональность, показывая предупреждение пользователю после 18 минут бездействия, предупреждая их о том, что их сеанс истечет через 1 минуту и ​​предоставит возможность продлить сеанс, нажав кнопку, которая в свою очередь вызывает задний конец чтобы омолодить сеанс.

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

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