Я играл с проверкой подлинности форм, и я заметил проблему, если пользователь закрыл свой браузер, а не щелкнул кнопку выпадающего на веб-сайте.Формы auth cookie сохраняются в браузере close
Если пользователь отключает браузер, файлы cookie auth cookie все еще существуют, когда загрузка выполняется, даже если он является только cookie сеанса и не сохраняется. В коде на моей главной странице у меня есть следующее.
Masterpage код за
protected void Page_Init(object sender, EventArgs e) { // if authenticated, initialize session if (Request.IsAuthenticated) { // set stuff } }
Когда я отладки через него в первый раз, она попадает Request.IsAuthenticated это ложь, то она попадает снова, и это правда. Проблема заключается в интерфейсной странице. У меня есть некоторые проверки, чтобы проверить, проверен ли пользователь, и он ошибочен, когда оценивает эти условия.
Masterpage Фронтальный
<% 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>
Резюме
- Форма аутентификация печенье сохраняется, когда пользователь просто закрывает/закрывает браузер вниз, даже если он не является стойким печеньем
- Если пользователь имеет существующие формы аутентификации куки, когда они нагружают вверх по сайт Request.IsAuthenticated check оценивает значение false на первом попадании в отладчике, а затем true на втором. На лицевой панели страница явно проверяет эти вещи при первом попадании, потому что они оценивают значение false.