0
我當時正在使用表單身份驗證,如果用戶關閉瀏覽器而不是點擊網站上的退出按鈕,則發現問題。表單驗證Cookie在瀏覽器上仍然存在關閉
如果用戶關閉瀏覽器,則表單auth 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>
<% } %>
設置驗證曲奇
FormsAuthentication.SetAuthCookie(username, false);
WEB.CONFIG
<authentication mode="Forms">
<forms
loginUrl="/"
name="ASPXFORMSAUTH"
timeout="360"
/>
</authentication>
摘要
- 的窗體身份驗證Cookie仍然存在,當用戶剛關閉/向下關閉 瀏覽器,即使它不是一個永久性的Cookie
- 如果用戶有一個現有的窗體身份驗證cookie時,他們加載了 網站Request.IsAuthenticated檢查在調試器中的第一次打擊時在 上評估爲false,然後在第二次打擊時爲true。前端 頁面明顯檢查這些事情在第一次打擊,因爲他們 評估爲false。