我假設你正在使用窗體身份驗證。那是對的嗎?如果是這樣,您需要讓您的表單身份驗證票證的超時匹配會話超時。
用戶通過一個比看起來更復雜的過程保持登錄狀態。 Cookie存儲在用戶的瀏覽器中,該瀏覽器稱爲Forms Authentication Ticket。如果用戶保持空閒超過會話超時限制,服務器將放棄會話。但是在下一個請求中,表單身份驗證票證會被傳回到Web服務器。服務器驗證票證,如果它仍然有效,則用戶重新登錄。
正如你所看到的,用戶的會話不會被恢復。如果你想要這種行爲,你必須檢測出這種情況並自己恢復會話。
解決方法是將Forms Authentication Ticket的超時設置爲與Session超時相同。您完成在Web.config文件,as explained here:
<system.web>
<authentication mode="Forms">
<forms timeout="20"/>
</authentication>
</system.web>
的超時值以分鐘爲單位。一旦表單身份驗證票證的超時被擊中,用戶將被註銷。這個操作獨立於會話的超時,但如果它們是相同的,它們將在大致相同的時間到期。如果您想要完全安全,請將Forms Authentication Ticket超時設置爲比會話超時短一點。用戶在會話超時之前將被註銷。當他們再次登錄時,他們將獲得新的會話。舊會議最終會自行超時。