2010-03-31 194 views
2

我爲此之前可能被問到的事先道歉。我有一個asp.net 2.0 web應用程序,並試圖設置會話超時。asp.net 2.0會話超時

我的第一次嘗試是將此添加到web.config。 <的sessionState模式=「InProc方式」超時=「300」>

用戶會告訴我儘管這大約20分鐘的網站上被閒置,然後試圖做一些事情再次後,他們會被重定向回登錄頁。

所以現在我正在嘗試 timeout =「60」在我的<窗體標籤web.config中。

我也在我的global.asax中嘗試了Session.Timeout = 60。

這些工作應該如何?我需要別的東西嗎?感謝您的時間和幫助。

回答

3

來自另一個論壇帖子。

有兩種不同類型的 超時。一個是身份驗證 超時(將您重定向到 登錄頁面),另一個是會話 超時(會丟失所有會話 變量)。我通過使用 session.timeout將會話超時設置爲 global.asax session_start。在你的webconfig, 您可以通過編輯這個標籤設置認證超時 :

<authentication mode="Forms"> 
    <forms timeout="1024"/> 
</authentication> 
+0

這對我有意義,我現在看到我需要設置窗體超時。儘管出於好奇。爲什麼不只是讓sessionState超時而已,並且在超時結束之前不讓它們返回登錄狀態?就像我說的那樣,我將它設置爲300. – d3020 2010-04-01 00:57:39

+0

會話狀態與認證無關,除了認證使用會話之外。 – 2010-04-01 01:17:24

+0

好的。那麼,設置會話狀態超時對超時沒有影響,那麼你是說?有沒有任何關係或聯繫?我的意思是說,我將forms標記中的超時設置爲60,將會話狀態標記中的超時設置爲30.在這種情況下,效果如何? – d3020 2010-04-01 01:22:01

2

會話超時和認證超時是兩回事。

訪問您網站的任何用戶都會獲得會話,無論他們是否已登錄。在指定的超時時間內,他們的會話已停止,並且他們的會話將在下次分配一個新會話他們擊中你的網站。

表單身份驗證在也有超時的cookie中使用身份驗證票證。如果身份驗證超時時間短於會話超時時間,身份驗證票證將過期,用戶仍將被註銷 - 但他們仍將擁有其會話數據!

您需要在web.config中查找身份驗證超時並將其調整爲與會話超時匹配。

+0

好吧,我看到有兩種不同類型的超時,我需要設置一個表單身份驗證。但我不完全清楚的是你談論會話超時的地方。就像我之前說的,在表單部分放入超時屬性之前。我的sessionState超時設置爲300,但它仍然在20分鐘左右後將用戶記錄下來。我仍然不確定爲什麼會這樣。 – d3020 2010-04-01 00:56:01