C# Cookie操作

来源:互联网 发布:安知玉如意txt 编辑:程序博客网 时间:2024/04/26 01:50
 
操作Cookie公用代碼
        
#region關於操作Cookie的方法
         ///<summary>
         ///創建cookie
         ///</summary>
         ///<param name="cookieName">cookie名稱</param>
         ///<param name="cookieValue">cookie</param>
         ///<param name="cookieTime">cookie有效時間</param>
         private void CreateCookieValue(string cookieName,string cookieValue,DateTime cookieTime)
         {
              HttpCookie cookie = new HttpCookie(cookieName);
              cookie.Value=cookieValue;
              //DateTime dtNow = DateTime.Now ;
              //TimeSpan tsMinute = cookieTime;
              cookie.Expires = cookieTime;
              Response.Cookies.Add(cookie);
         }
         ///<summary>
         ///創建cookie
         ///</summary>
         ///<param name="cookieName">cookie名稱</param>   
         ///<param name="cookieValue">cookie</param>
         ///<param name="subCookieName">子信息cookie名稱</param>
         ///<param name="subCookieValue">子信息cookie</param>
         ///<param name="cookieTime">cookie有效時間</param>
         private void CreateCookieValue(string cookieName,string cookieValue,string subCookieName,string subCookieValue,DateTime cookieTime)
         {
              HttpCookie cookie = new HttpCookie(cookieName);
              cookie.Value=cookieValue;
              cookie[subCookieName]=subCookieValue;
              cookie.Expires = cookieTime;
              Response.Cookies.Add(cookie);
         }
         ///<summary>
         ///取得cookie的值
         ///</summary>
         ///<param name="cookieName">cookie名稱</param>
         ///<returns></returns>
         private string GetCookieValue(string cookieName)
         {
              string cookieValue="";
              HttpCookie cookie = Request.Cookies[cookieName];            
              if(null == cookie)
              {
                   cookieValue="";
              }
              else
              {
                   cookieValue=cookie.Value;
              }
              return cookieValue;
         }
         ///<summary>
         ///取得cookie的值
         ///</summary>
         ///<param name="cookieName">cookie名稱</param>
         ///<param name="subCookieName">cookie子信息值</param>
         ///<returns></returns>
         private string GetCookieValue(string cookieName,string subCookieName)
         {
              string cookieValue="";
              HttpCookie cookie = Request.Cookies[cookieName];            
              if(null == cookie)
              {
                   cookieValue="";
              }
              else
              {
                   cookieValue=cookie.Value;
                   cookieValue=cookieValue.Split('&')[1].ToString().Split('=')[1];
              }
              return cookieValue;
         }
         ///<summary>
         ///刪除某個固定的cookie[此方法一是在原有的cookie上再創建同樣的cookie值,但是時間是過期的時間]
         ///</summary>
         ///<param name="cookieName"></param>
         private void RemoteCookieValue(string cookieName)
         {
              string dt="1900-01-01 12:00:00";
              CreateCookieValue(cookieName,"",Convert.ToDateTime(dt));
         }
         #endregion
 
以下是調用:
 
         private void Page_Load(object sender, System.EventArgs e)
         {
              // 在這裡放置使用者程式碼以初始化網頁    
              this.txt_UserID.Text=this.GetCookieValue("UserName","UserID");//取得用戶名
         }
 
         private void btn_Submit_Click(object sender, System.EventArgs e)
         {   
#regionCookie進行保存登入用戶名
              if(this.chb_IsSave.Checked)
              {
                   //將用戶保存一個小時,具體設置可以進行調整。。
                   //這裡用了固定的公用的cookie用戶UserName,用戶編號UserID進行訪問
                   CreateCookieValue("UserName","UserName","UserID",this.txt_UserID.Text,DateTime.Now+new TimeSpan(0,1,0,0));//設置保存用戶名
              }
              #endregion
}