asp.net перенаправляет на страницу входа - PullRequest
0 голосов
/ 17 октября 2010

Если я установил тайм-аут аутентификации форм на 30 дней (в минутах), и я установил тайм-аут сеанса на 5 минут, и я использую куки для сохранения различных переменных сеанса .. почему asp.net или IIS всегдавсегда выдавать 302 и перенаправляет на страницу входа в систему по истечении времени сеанса?(При отладке по протоколу http выводится сообщение «объект перемещен сюда»)

Я проверяю сеанс во всех page_init на всех страницах, поскольку все они наследуются от общего класса Page, если я обнаружил, что сеанс неисправен.загрузить переменные сеанса из файла cookie, упомянутого выше.

Мой вопрос: кто или что перенаправляет на страницу входа !!?

Я проверил это на IIS6 и IIS7 с идентичными результатами.

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

Дальнейшая отладка выявила следующее:

Первое случайное исключение типа «System.Threading.ThreadAbortException» произошло в mscorlib.dll Исключение типа «System.Threading.ThreadAbortException» произошло в mscorlib.dll, но не было обработано в коде пользователя

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

1 Ответ

1 голос
/ 17 октября 2010

Это проверка подлинности форм, которая делает это.Если вы не прошли проверку подлинности, проверка подлинности форм отправит вас на страницу входа в систему.

см. http://msdn.microsoft.com/en-us/library/ff647070.aspx

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

Также рассматривается в конце этой статьи

Редактировать

Со второй ссылки выше:

Сценарий проблемы: проверка подлинности форм может истечь до истечения значения атрибута тайм-аута, установленного в файле конфигурации. Если билет проверки подлинности форм создается вручную, свойство тайм-аута заявки переопределит значениеэто установлено в файле конфигурации.Поэтому, если это значение меньше, чем значение в файле конфигурации, срок действия билета проверки подлинности истекает до значения атрибута тайм-аута файла конфигурации, и наоборот.Например, предположим, что атрибут timeout установлен в 30 в файле Web.config, а значение срока действия заявки - 20 минут.В этом случае срок действия билета для проверки подлинности через 20 минут истечет, и после этого пользователю придется снова войти в систему.

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