Session在類庫中的使用


轉自: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分鍾。

代碼: <sessionState mode="InProc" timeout="10"></sessionState>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM