轉自:http://www.cnblogs.com/JiangXiaoTian/articles/3490904.html
網站開發中,為了保存用戶的信息,有時候需要使用session。如果我們在aspx頁面中使用Session,只需要Session["key"]=value就可以,獲取時使用int userid=Session["userid"],但是在賦值時,我們可能需要判斷Session是否為空,是否能轉換成int類型。如果只在一處使用Session,那么我們可以直接在aspx頁面中操作,修改也只需修改一處。
但在操作Session時,可能會在多個頁面,如果修改Session,可能需要修改多個頁面,這樣會非常的繁瑣。解決的辦法主要有兩個,一個是基類頁面,添加一個基類頁面,頁面繼承自System.Web.UI.Page,在基類頁面中處理Session。其它的涉及Session操作的繼承自基類頁面。二是使用類,如果在asp.net項目中使用類,只需要引用
using System.Web; using System.Web.SessionState; //然后定義 private static HttpSessionState _session = HttpContext.Current.Session; 就可以通過_session操作Session了。
本文主要介紹第二種方式,而且是使用類庫操作Session的方法。
1.新建一個類庫
2.添加引用,解決方案資源管理器中,右鍵“引用”-》“添加引用”-》.net-》選擇“System.Web”-》點擊“確定”
3.添加一個類,在類中引用
using System.Web; using System.Web.SessionState;
4.操作Session,主要涉及添加,獲取,清除。其它的如修改、刪除也可添加。主要代碼如下:
private static HttpSessionState _session = HttpContext.Current.Session; public static void SetSession(string key,object value) { _session[key] = value; } public static int GetSessionNumber(string key) { int result = 0; if(_session[key]!=null) { int.TryParse(_session[key].ToString(), out result); } return result; } public static string GetSessionString(string key) { string result = ""; if(_session[key]!=null) { result = _session[key].ToString(); } return result; } public static void Clear() { _session.Clear(); }
注釋:session有效時間默認為20分鍾,內容來自中國站長資訊網(www.chinahtml.com)這個時間是指,當用戶登錄后,如果沒有任何動作,即不在web上有請求.將維持這個用戶的身份有效時間是20分鍾,如果這個用戶一直與web有請求操作,那么,這個時間一直沒有算在20分鍾內,即,如果用戶登錄后,即便操作一個小時,那么也不會出現超時,除非用戶與服務器之間掉線。
Session對象默認失效期為20分鍾,用戶也可以在Web.Config中對其進行設置。
配置Web.Config文件的方法如下:
在Web.Config文件的<system.web></system.web>節點中添加如下代碼,設置Session的生命周期為10分鍾。