cookie屬性: name欄位為一個cookie的名稱。 value欄位為一個cookie的值。 domain欄位為可以訪問此cookie的功能變數名稱。 path欄位為可以訪問此cookie的頁面路徑。 比如domain是abc.com,path是/test,那麼只有/test路徑下的頁面可以讀取此co ...
cookie屬性:
name欄位為一個cookie的名稱。
value欄位為一個cookie的值。
domain欄位為可以訪問此cookie的功能變數名稱。
path欄位為可以訪問此cookie的頁面路徑。 比如domain是abc.com,path是/test,那麼只有/test路徑下的頁面可以讀取此cookie。
expires 欄位為此cookie超時時間。若設置其值為一個時間,那麼當到達此時間後,此cookie失效。不設置的話預設值是Session,意思是cookie會和session一起失效。當瀏覽器關閉(不是瀏覽器標簽頁,而是整個瀏覽器) 後,此cookie失效。
Size欄位 此cookie大小。
http欄位 cookie的httponly屬性。若此屬性為true,則只有在http請求頭中會帶有此cookie的信息,而不能通過document.cookie來訪問此cookie。
secure欄位 設置是否只能通過https來傳遞此條cookie
在這裡只寫了簡單的Cookie操作
設置Cookie
public void AddCookie()
{
//方法一:
HttpCookie Cookie1 = new HttpCookie("CookieName");
Cookie1.Expires = DateTime.Now.AddDays(1);//設置過期時間
Cookie1.Value = "Value";
Response.Cookies.Add(Cookie1);//響應一個Cookies
//System.Web.HttpContext.Current.Response.Cookies.Add(Cookie1);//作用同 Response.Cookies.Add(Cookie1),響應一個Cookies
//方法二:
Response.Cookies["CookieName"].Value = "Value";
// Response.Cookies["CookieName"].Values["Key"] = "Value";//存多值
Response.Cookies["CookieName"].Expires = DateTime.Now.AddDays(1);//設置過期時間
//方法三:
HttpCookie cookie3 = new HttpCookie("CookieName");
DateTime dt = DateTime.Now; //獲取當前時間
TimeSpan ts = new TimeSpan(0, 0, 1, 0, 0);//過期時間為1分鐘
cookie3.Expires = dt.Add(ts);//設置過期時間
cookie3.Values.Add("Key", "Value");
cookie3.Values.Add("Key", "Value");
//cookie3.Values.Set("Key", "Value");//設置cookie某項的值
Response.AppendCookie(cookie3); //響應一個Cookies
//註:如果使用response.Cookies創建cookie就不用寫System.Web.HttpContext.Current.Response.Cookies了。
}
獲取Cookie
public void ReadCookie()
{
//方法一:
HttpCookie cookies1 = Request.Cookies["CookieName"];
string Values1 = cookies1.Value;
//string Values 1= cookies.Values["Key"];//獲取多值
//方法二:
string Values2 = Request.Cookies["CookieName"].Value;
//string Values2 = Request.Cookies["CookieName"].Values["Key"];//獲取多值
//方法三:(獲取多值)
string Values3 = Server.UrlDecode(Request.Cookies["CookieName"]["Key"]);
//System.Web.HttpContext.Current.Request.Cookies["CookieName"];//同Request.Cookies
}
修改Cookie
public void UpdateCookie()
{
//修改只需要重新給要修改的cookie賦值就行,這樣舊的就會被覆蓋掉。
//所以這裡只寫一種方法,更多請參考創建cookie
HttpCookie Cookie = Request.Cookies["CookieName"];
Cookie.Expires = DateTime.Now.AddDays(1);//設置過期時間
Cookie.Value = "Value";//設置值
Response.Cookies.Add(Cookie);//響應一個Cookies
}
刪除Cookie
public void DeleteCookie()
{
//刪除cookie只需修改的cookie的過期時間(expires)過去的時間即可
//所以這裡只寫一種方法,更多請參考創建cookie
HttpCookie Cookie = Request.Cookies["CookieName"];
Cookie.Expires = DateTime.Now.AddDays(-1);//設置過期時間
Response.Cookies.Add(Cookie);//響應一個Cookies
}
- 註意:對Cookie進行操作時應先判斷cookie不為空
- 註意:當Cookie存中文出現亂碼,則在存放時給中文編碼,讀取時解碼即可,如Cookie.setCookie("name", Server.UrlEncode("Value"),1)
- 註意:只要不給cookie設置過期時間,cookie在瀏覽器關閉的時候自動失效