Я играл с аутентификацией форм и заметил проблему, если пользователь закрывает свой браузер вместо того, чтобы нажимать кнопку выхода на веб-сайте.
Если пользователь выключает браузер, файл cookie для проверки подлинности форм все еще существует, когда загружается его резервная копия, даже если он является файлом cookie только для сеанса и не сохраняется. В коде позади на моей главной странице у меня есть следующее.
Код главной страницы позади
protected void Page_Init(object sender, EventArgs e)
{
// if authenticated, initialize session
if (Request.IsAuthenticated)
{
// set stuff
}
}
Когда я отлаживаю через него в первый раз, когда он нажимает Request.IsAuthenticated, он ложен, затем снова попадает в него, и это правда. Проблема в странице переднего плана. У меня есть несколько проверок, чтобы проверить, прошел ли пользователь аутентификацию, и неверно ли он при оценке этих условий.
Интерфейс главной страницы
<% if (Request.IsAuthenticated) { %>
<li>Admin Page</li>
<% } %>
Настройка Auth Cookie
FormsAuthentication.SetAuthCookie(username, false);
Web.config
<authentication mode="Forms">
<forms
loginUrl="/"
name="ASPXFORMSAUTH"
timeout="360"
/>
</authentication>
Основная информация
- Сохранение формы файла cookie сохраняется, когда пользователь просто закрывает / закрывает
браузер выключен, хотя это не постоянный файл cookie
- Если у пользователя есть существующий файл cookie проверки подлинности форм при загрузке
проверять запрос Request.IsAuthenticated на ложном
сначала ударил в отладчике, а затем правда на втором. Внешний интерфейс
страница явно проверяет эти вещи при первом попадании, потому что они
оцените как ложное.