2010-10-22 3 views
0

Здесь уже задано много вопросов о том, что делать, когда сессия заканчивается при выполнении запроса Ajax. Одним из обходных решений является размещение заголовка в ответе, который делает перенаправление на страницу входа.Срок действия сеанса ASP.NET истекает в запросе Ajax

Мой сайт выполняет только обратную передачу на первой странице, то это все Ajax-запросы, которые заставляют сеанс истекать в определенное время, но есть ли возможность обновить тайм-аут сеанса в запросах Ajax (в обработчике ASP, который посещает запрос), так что сеанс действительно истекает, но только тогда, когда я передал время ожидания без какого-либо запроса на сервер вообще?

+0

Я не уверен, если я правильно понимаю ваш вопрос. Вы сказали: «Обновите тайм-аут сеанса в запросе AJAX». Обычно вам не нужно делать это явно. Несмотря на то, что запрос является запросом AJAX, жизненный цикл страницы не меняется. Модули/обработчики будут работать так же, как и должны. Следовательно, ваша связанная с сеансом информация будет автоматически обновляться. –

+0

Хорошо, точно так же, как говорила овуляция, сеанс должен поддерживаться в запросе Ajax. Я думал, что при выполнении запроса будет сделан запрос сервера, но жизненный цикл страницы не произойдет. благодаря – Soulbe

ответ

1

Вы можете реализовать KeepAlive SessionObserver (JavaScript) и отслеживать таймауты сеанса самостоятельно. Таким образом, вы можете улавливать SessionTimeouts простаивающих пользователей, перенаправлять их сообщениями и другими полезными вещами.

Кроме того, сеансы следует сохранять в живых при выдаче запросов Ajax. Возможно, они поддерживаются только в том случае, если соответствующий WebService имеет атрибут EnableSession. Вы тоже можете попробовать.

Например,

[WebMethod(EnableSession = true)] 
public string WebServiceMethod(){ return "I'm session aware.";} 
Смежные вопросы