2014-10-29 45 views
0

上午使用asp.net與C#爲我的項目。如果用戶在特定時間內不會與網頁交互,如何過期ASP會話?

如果用戶在特定時間內不會與網站互動(即如果用戶在未來10分鐘內不會與網站互動,說明Session將過期),我想要過期Session

我使用web.config配置session timeout如下。

<sessionState mode="InProc" timeout="10" />

問題:但它每10分鐘之後期滿session。即使用戶正在與網站進行交互,結果是用戶必須每10分鐘後一次又一次登錄。

但是,我希望session應該在10分鐘內過期。如果用戶在10分鐘內沒有與網站互動。

+1

有沒有也別的地方規定的10分鐘超時?例如,在應用程序池配置中的IIS中? – 2014-10-29 09:41:01

+0

@RoyDictus - no我沒有在IIS應用程序池中指定超時 - 我應該嗎? – prog1011 2014-10-29 09:43:30

+0

不,但它看起來不是你的會話狀態超時是問題,而是另一個問題。在應用程序和您的IIS配置中查找超時。 – 2014-10-29 09:50:52

回答

3

您是否使用驗證方法?

如果你是,你可以添加屬性

SlidingExpiration="true" 

到配置,它復位如果>一半的時間已經過去超時

http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.slidingexpiration(v=vs.110).aspx

+0

是的,這是我想要的。它按我的需要工作......!謝謝:) – prog1011 2014-10-29 10:08:42

+0

會話可能仍然可用,只是身份驗證超時,這些是單獨的。 – 2014-10-29 15:47:34

0

你應該檢查幾件事情

1:嘗試使用sessionstate mode = stateserver。

2:您的IIS應用程序池重置或重新啓動時間。是否您的應用程序池在修復一段時間後重新啓動或回收?

3:檢查您是否使用了其他會話超時設置。它只能在web.config文件中顯示。

4:(只是嘗試,如果上面沒有作品)嘗試使用Server.Tranfer代替的Response.Redirect()

相關問題