Asp.net內建對象之Cookies(簡介/屬性方法/基本操作及執行個體)

來源:互聯網
上載者:User

一、瞭解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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.