關於Asp.net應用中cookie的問題處理:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
1、在應用程序中有時會出現cookie混亂的問題,主要問題在RemoveCookie上,解決辦法:
/// <summary>
/// 移除cookie,將Request和Response兩個集合中的都清理
/// Code by KentLi
/// </summary>
/// <param name="cookieName">cookie名稱</param>
public void RemoveCookie(string cookieName)
{
HttpCookie Cookie = HttpContext.Current.Request.Cookies[cookieName];
if (Cookie != null)
{
//過期時間設置爲立即過期
Cookie.Expires= DateTime.Now;
HttpContext.Current.Request.Cookies.Remove(cookieName);
}
Cookie = HttpContext.Current.Response.Cookies[cookieName];
if (Cookie != null)
{
Cookie.Expires= DateTime.Now;
HttpContext.Current.Response.Cookies.Remove(cookieName);
}
}
public void appendcook(string cookies,string cookiesvalue,int days)
{
HttpCookie usercookie=new HttpCookie(cookies,cookiesvalue);
usercookie.Expires = DateTime.Now.AddDays(days);
HttpContext.Current.Response.Cookies.Add(usercookie);
}
2
Server.UrlEncode();
Server.UrlDecode();
編碼和解碼。
Cookie["MyCookie"] = Server.UrlEncode("中文")
Response.Write(Server.UrlDecode(Request.Cookies("MyCookie").Value()))
http://support.microsoft.com/default.aspx?scid=kb;en-us;313282
更多Cookie的相關知識
HttpContext.Current.Response.Cookies
HttpContext.Current.Request.Cookies
分別是需要寫回用戶客戶端和從用戶客戶端讀取的Cookie集合。
當修改Cookie的時候,爲了保證同一個Asp.net 頁面能訪問修改後的Cookie,就必須同時修改這兩個集合中的Cookie。
http://west-wind.com/weblog/posts/1006.aspx
http://www.derkeiler.com/Newsgroups/microsoft.public.inetserver.iis.security/2004-03/0147.html