2010-10-17 3 views
0

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

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

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

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

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

debbuging показал следующее:

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

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

ответ

1

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

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

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

Он также покрыт в конце this статей

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

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

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

+0

, но не должен ли он быть аутентифицирован, так как я использую значение максимального времени ожидания? Как мне обойти это? –

+0

Попробуйте увеличить тайм-аут сеанса, аутентификация форм использует сеанс не только cookie. –

+0

Проблема заключается в том, что мы получаем нулевые переменные сеанса по случайным причинам и, следовательно, cookie, который я использую, чтобы сохранить переменные сеанса –

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