程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 一個.net下通用的Cookie操作類

一個.net下通用的Cookie操作類

編輯:關於ASP.NET

筆者曾經參與一個大型多用戶商城的開發,系統用戶角色很多,有買家,賣家,代理商,系統管理員 ,普通管理員,超級管理員等,這些用戶都涉及到登陸系統,然後建立cookies的問題,由於角色的不同 ,這些用戶登陸系統後,所建的cookies都相對獨立,而且對一個多用戶商城來說,cookies區分域很重要 ,不同的域名要建不同的域。因此筆者在開發的過程中,寫了很多次的建cookies,取cookies的代碼,不 勝其煩!

既然都是建cookies,那麼肯定有共同點,我們何不抽象出來,寫一個通用的Cookie操作類呢,下面筆 者就以.net為例,來說明下如何實現這個類吧!

/////以下是建cookies的函數

public void SetCookies(string domain, string type, XieGou.XGMap map)
 {
 HttpCookie cookie = new HttpCookie(type);//定義cookie對象
 DateTime dt = DateTime.Now;//定義時間對象
 TimeSpan ts=new TimeSpan(1,0,0,0);//cookie有效作用時間,具體查msdn
 cookie.Expires = dt.Add(ts);//添加作用時間
 cookie.Domain = domain;
 for(int i =0 ;i < map.Size() ; i++)
 {
  cookie.Values.Add(map.GetTag(i),map.GetValue(i).ToString());//增加屬性
 }
 page.Response.AppendCookie(cookie);//確定寫入cookie中
 }

/////以下是取cookies的函數

public string GetCookies(string type, string name)
 {
 if(page.Request.Cookies[type] != null)
 {
  if(page.Request.Cookies[type].Values[name] != null)
  {
  return page.Request.Cookies[type].Values[name].ToString();
  }
  else
  {
  return "0";
  }
 }
 return "0";
 }

下面我們來看下,如何調用這兩個函數:

XieGou.XGMap map = new XGMap();  ///這裡用到的Map類,可以參考網上資料寫一個
 map.Add("shopid",shop.m_id.ToString());  ///添加map對應表
  map.Add("shopname",shop.m_name.ToString());
 func.SetCookies(".shopxg.com","shopxg_namespace",map);

原理其實很簡單,先定義一個map類,把要建的cookies名稱和值放到map表裡,然後統一由SetCookies 來建cookies,這樣寫的好處,就是可以少寫很多代碼,特別是需要頻繁建cookies的網站!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved