public class BsCookie 
{ 
//操作的cookie 
private HttpCookie _theCookie; 
//对应的cookie的名称 
private string _cookieName; 
private bool _httpOnly = true; 
/// <summary> 
/// 是否只允许在服务器端访问,默认只允许在服务端访问 
/// </summary> 
public bool HttpOnly 
{ 
get { return _httpOnly; } 
set { _httpOnly = value; } 
} 
private double _expireMinutes; 
/// <summary> 
/// Cookies有效的存放时间,以分钟表示 
/// </summary> 
public double ExpireMinutes 
{ 
get { return _expireMinutes; } 
set { _expireMinutes = value; } 
} 
public BsCookie(string name,double expireMinutes) 
{ 
_cookieName = name; 
_expireMinutes = expireMinutes; 
} 
/// <summary> 
/// 读取对应的cookie 
/// </summary> 
/// <param></param> 
/// <returns></returns> 
private HttpCookie GetCookieReq() 
{ 
HttpRequest request = HttpContext.Current.Request; 
if (request != null) 
{ 
HttpCookie cookie = request.Cookies[_cookieName]; 
if (cookie != null) 
{ 
return cookie; 
} 
} 
return null; 
} 
/// <summary> 
/// 设置对应的cookie 
/// </summary> 
/// <param></param> 
/// <returns></returns> 
private HttpCookie GetCookieResponse() 
{ 
HttpResponse response = HttpContext.Current.Response; 
if (response != null) 
{ 
HttpCookie cookie = response.Cookies[_cookieName]; 
if (cookie != null) 
{ 
return cookie; 
} 
} 
return new HttpCookie(_cookieName); 
} 
/// <summary> 
/// 仅设置主键的 
/// </summary> 
/// <param></param> 
/// <param></param> 
/// <param></param> 
public void SetCookie(string value) 
{ 
_theCookie = GetCookieResponse(); 
_theCookie.Value = HttpUtility.HtmlEncode(AllCommon.Encrypt(value)); 
if (Math.Abs(_expireMinutes) > 1) 
{ 
_theCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
_theCookie.HttpOnly = _httpOnly; 
} 
/// <summary> 
/// 设置一组主键 
/// </summary> 
/// <param></param> 
/// <param></param> 
/// <param></param> 
public void SetCookie(Hashtable keys) 
{ 
_theCookie = GetCookieResponse(); 
foreach (DictionaryEntry de in keys) 
{ 
_theCookie.Values[de.Key.ToString()] = HttpUtility.HtmlEncode(AllCommon.Encrypt(de.Value.ToString())); 
} 
if (Math.Abs(_expireMinutes) > 1) 
{ 
_theCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
_theCookie.HttpOnly = _httpOnly; 
} 
/// <summary> 
/// 获取单一的cookie主键值 
/// </summary> 
/// <param></param> 
/// <param>需要延长的cookie的默认时间</param> 
/// <returns></returns> 
public string GetCookie() 
{ 
_theCookie = GetCookieReq(); 
if (_theCookie == null) 
{ 
return string.Empty; 
} 
string thevalue = AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Value)); 
if (thevalue.Length > 0) 
{ 
HttpCookie serverCookie = GetCookieResponse(); 
if (Math.Abs(_expireMinutes) > 1) 
{ 
serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
} 
return thevalue; 
} 
/// <summary> 
/// 获取一组对应的cookie值 
/// </summary> 
/// <param></param> 
/// <param></param> 
/// <returns></returns> 
public Hashtable GetCookiesKeys() 
{ 
_theCookie = GetCookieReq(); 
if (_theCookie == null) 
{ 
return null; 
} 
string[] keys = _theCookie.Values.AllKeys; 
if (keys.Length > 0) 
{ 
Hashtable keyHash = new Hashtable(); 
foreach (string key in keys) 
{ 
keyHash.Add(key, AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[key]))); 
} 
HttpCookie serverCookie = GetCookieResponse(); 
if (Math.Abs(_expireMinutes) > 1) 
{ 
serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
return keyHash; 
} 
return null; 
} 
/// <summary> 
/// 获取一组里面的单一个值 
/// </summary> 
/// <param></param> 
/// <param></param> 
/// <returns></returns> 
public string GetCookieKV(string keyname) 
{ 
_theCookie = GetCookieReq(); 
if (_theCookie == null) 
{ 
return string.Empty; 
} 
string result=AllCommon.Decrypt(HttpUtility.HtmlDecode(_theCookie.Values[keyname])); 
if (result.Length > 0) 
{ 
HttpCookie serverCookie = GetCookieResponse(); 
if (Math.Abs(_expireMinutes) > 1 && serverCookie != null) 
{ 
serverCookie.Expires = DateTime.Now.AddMinutes(_expireMinutes); 
} 
} 
return result; 
} 
} 
演示Asp.Net中对Cookie的基本操作。
