C#使用Cookie方法?
Cookie是由伺服器端生成,傳送給User-Agent(一般是瀏覽器),瀏覽器會將Cookie的key/value儲存到某個目錄下的文字檔案內,下次請求同一網站時就傳送該Cookie給伺服器(前提是瀏覽器設定為啟用cookie)。Cookie名稱和值可以由伺服器端開發自己定義,對於JSP而言也可以直接寫入jsessionid,這樣伺服器可以知道該使用者是否合法使用者以及是否需要重新登入等,伺服器可以設定或讀取Cookies中包含資訊,藉此維護使用者跟伺服器會話中的狀態。
上面為Cookie的理論知識,下面使用具體案例來說明Cookie在C#中的具體使用方法。
//寫入Cookie案例:
protected void Button1_Click(object sender, EventArgs e)
{
HttpCookie cookie=new HttpCookie("MyCook");//初使化並設定Cookie的名稱
DateTime dt=DateTime.Now;
TimeSpan ts = new TimeSpan(0, 0, 1,0,0);//過期時間為1分鐘
cookie.Expires = dt.Add(ts);//設定過期時間
cookie.Values.Add("userid", "userid_value");
cookie.Values.Add("userid2","userid2_value2");
Response.AppendCookie(cookie);
//輸出該Cookie的所有內容
//Response.Write(cookie.Value);//輸出為:userid=userid_value&userid2=userid2_value2
}
//讀取Cookie案例:
protected void Button2_Click(object sender, EventArgs e)
{
// HttpCookie cokie = new HttpCookie("MyCook");//初使化
if (Request.Cookies["MyCook"]!=null)
{
//Response.Write("Cookie中鍵值為userid的值:" + Request.Cookies["MyCook"]["userid"]);//整行
//Response.Write("Cookie中鍵值為userid2的值" + Request.Cookies["MyCook"]["userid2"]);
Response.Write(Request.Cookies["MyCook"].Value);//輸出全部的值
}
}
//修改Cookie案例:
protected void Button3_Click(object sender, EventArgs e)
{
//獲取客戶端的Cookie物件
HttpCookie cok = Request.Cookies["MyCook"];
if (cok != null)
{
//修改Cookie的兩種方法
cok.Values["userid"] = "alter-value";
cok.Values.Set("userid", "alter-value");
//往Cookie里加入新的內容
cok.Values.Set("newid", "newValue");
Response.AppendCookie(cok);
}
}
//刪除Cookie案例:
protected void Button4_Click(object sender, EventArgs e)
{
HttpCookie cok = Request.Cookies["MyCook"];
if (cok != null)
{
if (!CheckBox1.Checked)
{
cok.Values.Remove("userid");//移除鍵值為userid的值
}
else
{
TimeSpan ts = new TimeSpan(-1, 0, 0, 0);
cok.Expires = DateTime.Now.Add(ts);//刪除整個Cookie,只要把過期時間設定為現在
}
Response.AppendCookie(cok);
}
}