程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> Asp.net內置對象之Cookies(簡介/屬性方法/基本操作及實例)

Asp.net內置對象之Cookies(簡介/屬性方法/基本操作及實例)

編輯:ASP.NET基礎

一、了解Cookies對象

Cookies是由Web服務器管理的存放在客戶計算機中的一個數據集合。這些數據是客戶端、服務器端相關的。也就是說客戶浏覽器每登錄一個網站,在Cookies中就會保存客戶浏覽器與該網站的相關信息。即使客戶用同一個浏覽器登陸了多個網站,在Cookies中依然會保存浏覽器與多個網站的相關信息,但Cookies中這些信息的管理是有序的,當客戶浏覽器再次登錄某網站時,只有Cookies中相對應的信息會發生作用。

Cookies是Web應用程序設計的一項很重要的技術,當Web服務器想知道某個用戶的相關資料或幾個ASP.NET文件之間傳送的數據時就可以使用Cookies。

很多網站中的Web應用程序都是由多個ASP.NET文件組成的,為完成某一特定功能,要求在這些ASP.NET文件之間能夠傳送一些參數,這些參數就可以存為Cookies,這樣當文件1想傳送數據給文件2時,只要文件1中的數據將參數作為Cookies寫入Cookies.txt文件中,然後文件2再從Cookies.txt文件中將指定名稱的Cookies信息讀出即可。Cookies中信息的寫入工作由Response對象完成,Cookies信息的讀取工作由Request對象完成。[在另一篇:Asp.net內置對象之Request對象中]

二、Cookie對象的屬性和方法

屬性:
(1).Name:獲取或設置Cookie的名稱
(2).Value:獲取或設置Cookie的值
(3).Expires:獲取或設置Cookie的過期時間
(4).Version:獲取或設置Cookie的符合HTTP維護狀態的版本

方法:
(1).Add:增加Cookie變量,將指定的cookie保存到Cookies集合中
(2).Clear:清除Cookie集合中變量
(3).Get:通過變量名或索引得到Cookie變量的值
(4).Remove:通過Cookie變量名或索引刪除Cookie對象

三、Cookie的基本操作

1.創建Cookie對象並設置過期時間
復制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
//創建Cookie對象
HttpCookie mycookie = new HttpCookie("MyCookie");//創建一個名稱為“MyCookie”的Cookie
mycookie.Value = Server.HtmlEncode("大家好,我是Cookie");//設置Cookie的值
mycookie.Expires = DateTime.Now.AddDays(10);//設置Cookie過期時間
Response.AppendCookie(mycookie);//將一個HTTP Cookie添加到內部Cookie集合中
//Response.Cookies.Add(mycookie);//添加到內部Cookie集合中,與上面相同
}

2.獲取Cookie對象
復制代碼 代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
//獲取Cookie對象
try
{
HttpCookie mycookie = new HttpCookie("MyCookie");
mycookie.Value = Server.HtmlEncode("Hello,我是Cookie");
mycookie.Expires = DateTime.Now.AddHours(10);
Response.AppendCookie(mycookie);
Response.Write("創建Cookie成功");
Response.Write("<hr>");
//----------使用------------
HttpCookie getMyCookie = Request.Cookies["MyCookie"];//獲取Cookie
Response.Write(getMyCookie.Name + getMyCookie.Value + getMyCookie.Expires);//輸出
}
catch
{
Response.Write("Cookie 創建失敗");
}
}

四、實例:Cookie的寫入和讀取

Response對象包含一個Cookies屬性。可以通過Cookies屬性設置、管理Cookies的信息。如果指定的Cookies不存在則創建該Cookies,如果存在則用新值替換舊值。

Cookie對象需要利用.NET提供的HttpCookie類重新定義。使用“Response.Cookies.Add”將信息發送並保存到客戶端的浏覽器,利用Request對象提供的方法可以將Cookies信息讀取出來。

如下實例:

代碼如下:
復制代碼 代碼如下:
在default1頁面中:
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
//保存cookie信息

HttpCookie c1 = new HttpCookie("user");//HttpCookie類實例化一個從cookie對象,創建並命名新的cookie
c1.Value = "cookie Value"; //設置單個cookie的值
Response.Cookies.Add(c1); //將指定的cookie保存到Cookies集合中
Response.Write("<script>alert('保存成功!')</script>");

}
protected void Button2_Click(object sender, EventArgs e)
{
//提交頁面
Response.Redirect("Default2.aspx");
}

復制代碼 代碼如下:
在default2頁面:
protected void Button1_Click(object sender, EventArgs e)
{
//讀取coookie
Response.Write("cookie的名稱(Name):" + Request.Cookies["user"].Name + "<br/>");
Response.Write("cookie的值(Value):" + Request.Cookies["user"].Value + "<br/>");

}

五、Cookie對象相比Session、Application的優缺點

以下總結來自:ASP.NET 3.5 開發技術大全

相比Session和Application對象,使用Cookie能持久化保存用戶信息。Cookie保存在客戶端,而Session和Application保存在服務器端,故Cookie能長久保存。web應用程序可以通過獲取客戶端的Cookie來進行用戶身份認證。

Asp.net包含兩個Cookie集合,通過HttpRequest的Cookie集合進行訪問,Cookie不是Page類的子類,所以使用方法與Session和Application不同,相比於他們Cookie的優點如下:

1.可以配置過期時間
2.簡單:Cookie是一種基於文本的輕量級結構,包括簡單的鍵值對
3.數據持久:因為保存到客戶端
4.無任何服務器資源:因為存儲在本地客戶端

缺點如下

1.大小限制:
2.不確定性:可能用戶刪除Cookie或者禁用
3.安全風險:可偽造修改

最後推薦一篇:Cookies

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved