2011-05-27 60 views
1

我需要給我的ASP.NET網站用戶一種控制會話超時的方法。我使用FormsAuthenticationTicketcookies用戶驅動的會話到期

我想給用戶的方式來指定會議將停留多久活躍。範圍可以在幾分鐘到一天之間或甚至更多。

我使用idleTimeout(我問一個問題here)。

而且,我節約使用該值我初始化FormsAuthenticationTicket通過在數據庫中的用戶輸入的值和。

我還有兩個問題:應用程序池和cookie。我的網站在專用App Pool下運行。我是否需要更改App Pool的idleTimeout屬性?當然,不是以編程方式。

無論如何,短語我的問題:爲了讓會話過期動態設置和工作不管什麼時間間隔,需要做什麼其他設置?

謝謝。

編輯:我使用的IIS7在Windows Server 2008的計算機上。

回答

4

它從來都不是一個好主意,有一個會話超時太長,你會在服務器上保留忙一些資源,如果你的Web應用程序是由許多不同的用戶來存取它可能會影響服務器的性能。

反正你可以改變會話超時編程方式使用下面的代碼記

Session.TimeOut= [=nMinutes] 

記住,會話超時應小於應用程序池空閒超時,所以如果增加會話超時,你必須也增加應用程序空閒超時。否則,應用程序將被回收。如果應用程序被回收,會話將自動失效。

允許的最小值爲1分鐘,最大爲1440分鐘。

+0

謝謝。看起來,會話的生活可以從媽媽的位置控制...順便說一下,我瞭解高內存使用的風險,但我們並不介意。 – Adi 2011-05-27 11:51:47

+0

是的,這是因爲每個請求後重新計算超時(通過添加超時值的實際時間:-) – 2011-05-27 12:11:01

+0

我知道,但我想找到方法來保持會話活着儘可能多,如果用戶想要那。 – Adi 2011-05-27 12:16:14