我已經非常努力地嘗試過,但找不到如何爲ASP.Net Web應用程序的進程內會話設置會話超時值的解決方案。如何在web.config中設置會話超時
我使用的是VSTS 2008 + .Net 3.5 + C#。這是我自己寫的設置超時時間爲1分鐘,這是正確的嗎?
我在web.config
<sessionState timeout="1" mode="InProc" />
我已經非常努力地嘗試過,但找不到如何爲ASP.Net Web應用程序的進程內會話設置會話超時值的解決方案。如何在web.config中設置會話超時
我使用的是VSTS 2008 + .Net 3.5 + C#。這是我自己寫的設置超時時間爲1分鐘,這是正確的嗎?
我在web.config
<sessionState timeout="1" mode="InProc" />
下的System.Web節中寫道如果你想將超時設置爲20分鐘,使用這樣的:
<configuration>
<system.web>
<sessionState timeout="20"></sessionState>
</system.web>
</configuration>
應該看到您的權利
您在timeout
屬性中設置的值是設置會話超時值的正確方法之一。
timeout
屬性指定會話在放棄之前可以閒置的分鐘數。此屬性的默認值爲20.
通過爲此屬性分配值1,您已將會話設置爲在閒置後1分鐘內放棄。
要進行測試,創建一個簡單的aspx頁面,並且在Page_Load事件寫代碼,
Response.Write(Session.SessionID);
打開瀏覽器,進入該頁面。會話ID將被打印。等待一分鐘,然後刷新。會話ID將改變。
現在,如果我的猜測是正確的,您希望在會話超時後立即讓用戶註銷。這樣做,你可以拼湊一個登錄頁面,它將驗證用戶憑據,創建這樣一個會話變量 -
Session["UserId"] = 1;
現在,你將必須執行每一個頁面上的復像這樣這個變量 -
if(Session["UserId"] == null)
Response.Redirect("login.aspx");
這是一個如何工作的簡單例子。
但是,爲了使您的產品質量安全的應用程序,請使用由ASP.NET提供的Roles & Membership類。他們提供基於表單的身份驗證,這是您正在嘗試使用的正常基於會話的身份驗證更可靠。
使用這web.config
:
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>
了定義的超時是正確的方式。你有任何問題嗎? – 2009-07-30 10:54:05
是的,它的罰款.. – 2009-07-30 10:55:19
你知道這意味着它將在1分鐘的不活動之後過期,而不是從開始1分鐘後過期嗎?我的猜測是,如果你問這個問題,並且正確輸入了超時時間,你可能會誤解它的工作原理。 – 2009-07-30 10:59:11