2013-12-09 3 views
0

У меня есть страница в моем веб-приложении, где пользователи могут использовать ее в течение потенциально часов без взаимодействия с сервером. все взаимодействия выполняются на странице с помощью javascript.как предотвратить отказ сеанса для пользователя бездействия (сеанс мудрый)

как я могу предотвратить отказ в сеансе, если я хочу, чтобы он установил 20 минут на всех других страницах?

мое решение отправляет пустой вызов ajax каждые 10 минут, чтобы пощекотать сервер, но есть ли другой вариант?

+1

* отправка пустого вызова ajax каждые 10 минут * действительно хороший вариант. – Abhitalks

+0

Ooops, я не читал, что вы делали вызов ajax. Как вы можете видеть из моего ответа, да, это правильная вещь. Вы можете только оптимизировать его, создав очень простую страницу или веб-службу, которая делает возможный minimun. – JotaBe

ответ

0

В ASP.Net вы можете изменить Session.Timeout, прежде чем вернуться, чтобы расширить его на этой странице. Я не проверял, будет ли он распространяться на другие последующие запросы, но стоит посмотреть.

http://msdn.microsoft.com/en-us/library/ms524319(v=vs.90).aspx

1

Вы можете сделать фиктивный АЯКС вызов возобновлять тайм-аут сеанса.

Для этого создайте пустую страницу .aspx и используйте все, что хотите загрузить эту страницу, чтобы возобновить сеанс. Например, JavaScript setInterval и JQuery $.get()

Если вы не заполнили комфортно, используя JavaScript и JQuery, вы всегда можете использовать Ajax Timer' and another Ajax UpdatePanel`.

Это гарантирует, что сеанс будет сохранен, пока браузер открыт.

Выполнение всех сеансов дольше не похоже на наилучшее возможное решение.

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

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