我正在開發ASP.Net MVC應用程序。使用SqlServer模式時會話超時不起作用
我們使用了sessionState模式SQLServer,並且我將超時設置爲20分鐘。
<sessionState mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=sa;password=sa"
cookieless="false"
timeout="2" />
在web配置中的代碼是這樣的。
我也設置了登錄頁面。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
現在,當會話過期時,我想導航用戶登錄頁面。
我檢查了很多東西,但我無法理解它是如何工作的?以及如何導航會話過期的用戶登錄頁面?
它在InProc模式下工作。我以相同的方式使用它,並且用戶被重定向到會話過期時登錄。
但我無法在SQLServer模式下完成同樣的事情。
我無法理解我錯過了什麼?
我檢查Session State也發現Session timeout handled in SQLServer Mode
編輯: - 我想重定向用戶每當另一個HTTP請求的是會話中執行到登錄頁面。
會話使用*滑動*超時。每次您再次訪問您的網站時,會話超時都會重置。 –
@ChrisPratt好的。我應該如何處理這種情況?是因爲SQLServer模式嗎? –
這就是我要說的。你不能。在用戶處於活動狀態時,會話永遠不會超時,無論是20分鐘還是2小時。如果用戶空閒,並且會話超時,則下一個請求將簡單地啓動一個新會話。您最可能想要做的只是將身份驗證設置爲20分鐘後過期。這將迫使用戶在20分鐘後重新登錄,因爲這是*不可*滑動。 –