ASP.NET下對(duì)cookies的操作實(shí)現(xiàn)代碼
2024-07-10 12:41:44
供稿:網(wǎng)友
代碼如下:
public class BsCookie
{
//操作的cookie
private HttpCookie _theCookie;
//對(duì)應(yīng)的cookie的名稱
private string _cookieName;
private bool _httpOnly = true;
/// <summary>
/// 是否只允許在服務(wù)器端訪問,默認(rèn)只允許在服務(wù)端訪問
/// </summary>
public bool HttpOnly
{
get { return _httpOnly; }
set { _httpOnly = value; }
}
private double _expireMinutes;
/// <summary>
/// Cookies有效的存放時(shí)間,以分鐘表示
/// </summary>
public double ExpireMinutes
{
get { return _expireMinutes; }
set { _expireMinutes = value; }
}
public BsCookie(string name,double expireMinutes)
{
_cookieName = name;
_expireMinutes = expireMinutes;
}
/// <summary>
/// 讀取對(duì)應(yīng)的cookie
/// </summary>
/// <param name="name"></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>
/// 設(shè)置對(duì)應(yīng)的cookie
/// </summary>
/// <param name="name"></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>
/// 僅設(shè)置主鍵的
/// </summary>
/// <param name="name"></param>
/// <param name="value"></param>
/// <param name="exMinutes"></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>
/// 設(shè)置一組主鍵
/// </summary>
/// <param name="name"></param>
/// <param name="keys"></param>
/// <param name="exMinutes"></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 name="name"></param>
/// <param name="exMinutes">需要延長(zhǎng)的cookie的默認(rèn)時(shí)間</param>