Asp.net
表單身份驗證超時與 sessionState 超時
我有關於網站會話超時的程式碼。在 web.config 我遇到了這段程式碼。
<authentication mode="Forms"> <forms loginUrl="~/Auth/SignOn.aspx" timeout="40" slidingExpiration="true" /> </authentication> <sessionState timeout="30" />有誰知道一個是否優先於另一個,以及它們有何不同。謝謝。
它們是不同的東西。Forms Authentication Timeout值設置身份驗證 cookie 設置為有效的時間(以分鐘為單位),這意味著在
value幾分鐘後,cookie 將過期並且使用者將不再進行身份驗證 - 他們將被重定向到登錄自動翻頁。該slidingExpiration=true值基本上是說,只要使用者在超時值內發出請求,他們就會繼續進行身份驗證(更多細節在這裡)。如果您設置slidingExpiration=false身份驗證 cookie 將在value幾分鐘後過期,無論使用者是否在超時值內發出請求。
SessionState超時值設置會話狀態提供程序為特定會話在記憶體(或正在使用的任何備份儲存、SQL Server、OutOfProc 等)中保存數據所需的時間量(以分鐘為單位)。例如,如果您使用範例中的值將對象放入 Session 中,則此數據將在 30 分鐘後刪除。使用者可能仍然通過身份驗證,但 Session 中的數據可能不再存在。Session Timeout每次請求後始終按照此處和此處的建議重置該值(可能需要 cookie;vs 無 cookie)