У меня есть простой сайт ASP.NET 4. Я использую проверку подлинности с помощью форм. У меня время ожидания сеанса установлено на 20 минут. Также, когда пользователь аутентифицируется, я устанавливаю срок действия AuthenticationTicket через 20 минут. Так что нормально все работает нормально. Если время бездействия превышает 20 минут, и пользователь запрашивает страницу на сайте, он перенаправляется обратно на страницу входа в систему, как я и ожидал.
Однако предположим, что пользователь находится на странице, содержащей форму. Затем они ждут 25 минут. Затем они идут, чтобы отправить форму. Вместо того, чтобы перенаправляться обратно на страницу входа, сайт пытается выполнить обратную передачу, и я сразу же получаю ошибки, потому что в обратной передаче есть код, который пытается получить информацию из сеанса.
Похоже, ASP.NET не перенаправляет обратно на вход в систему при обратной передаче, если срок действия билета AuthenticationTicket и Session истек. Как я могу справиться с этим? Надеюсь, мне не нужно писать специальный код на каждой странице.
ДОБАВЛЕНО: код web.config
<location path="ForgotLogin.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/Login.aspx"></forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
Corey