Использование AJAX - основной вопрос о тайм-ауте аутентификации сеанса и формы - PullRequest
1 голос
/ 12 января 2011

Итак, я использую AJAX для презентации симулятора экзамена для клиента, где каждый фиктивный экзамен длится около 2 часов. Я понимаю, что я не знаю столько о сессиях и их связи с аутентификацией форм, сколько я должен.

  • Вопрос. В ходе экзамена AJAX получит доступ к коду, вызывающему событие Page_Load. Таким образом, означает ли это, что и значение времени ожидания sessionState, и значение времени ожидания проверки подлинности с помощью форм будут сброшены?

Ответы [ 2 ]

1 голос
/ 12 января 2011

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

Проверка подлинности с помощью форм может работать двумя способами. Вы можете держать пользователя в системе в течение фиксированного периода времени или использовать скользящий срок действия. Например:

<authentication mode="Forms">
    <forms defaultUrl="~/Default.aspx"
        loginUrl="~/Login.aspx"
        slidingExpiration="false"
        timeout="120" />
</authentication>

Выше установлен тайм-аут аутентификации форм на 120 минут, но также отключает скользящий срок действия slidingExpiration="false". Это выгонит пользователя через два часа.

Свойство FormsAuthentication.SlidingExpiration (Библиотека MSDN)

0 голосов
/ 12 января 2011

Хотя это может зависеть от кода сервера, управляющего вашими сеансами, общий ответ - «Да». AJAX-запросы (XmlHttpRequest) будут передавать cookie-файлы браузера, позволяя серверу связать запрос с сеансом и, следовательно, заново установить таймер.

Если вы управляете своими сеансами по URL-адресу, а не по cookie-файлам, вам необходимо убедиться, что ваши запросы AJAX соответствуют требованиям URL-адреса, и передать session_id вместе с запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...