主頁(yè) > 知識(shí)庫(kù) > Asp.net內(nèi)置對(duì)象之Cookies(簡(jiǎn)介/屬性方法/基本操作及實(shí)例)

Asp.net內(nèi)置對(duì)象之Cookies(簡(jiǎn)介/屬性方法/基本操作及實(shí)例)

熱門標(biāo)簽:電子圍欄 服務(wù)器配置 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 銀行業(yè)務(wù) 團(tuán)購(gòu)網(wǎng)站 阿里云 Mysql連接數(shù)設(shè)置 Linux服務(wù)器

一、了解Cookies對(duì)象

Cookies是由Web服務(wù)器管理的存放在客戶計(jì)算機(jī)中的一個(gè)數(shù)據(jù)集合。這些數(shù)據(jù)是客戶端、服務(wù)器端相關(guān)的。也就是說(shuō)客戶瀏覽器每登錄一個(gè)網(wǎng)站,在Cookies中就會(huì)保存客戶瀏覽器與該網(wǎng)站的相關(guān)信息。即使客戶用同一個(gè)瀏覽器登陸了多個(gè)網(wǎng)站,在Cookies中依然會(huì)保存瀏覽器與多個(gè)網(wǎng)站的相關(guān)信息,但Cookies中這些信息的管理是有序的,當(dāng)客戶瀏覽器再次登錄某網(wǎng)站時(shí),只有Cookies中相對(duì)應(yīng)的信息會(huì)發(fā)生作用。

Cookies是Web應(yīng)用程序設(shè)計(jì)的一項(xiàng)很重要的技術(shù),當(dāng)Web服務(wù)器想知道某個(gè)用戶的相關(guān)資料或幾個(gè)ASP.NET文件之間傳送的數(shù)據(jù)時(shí)就可以使用Cookies。

很多網(wǎng)站中的Web應(yīng)用程序都是由多個(gè)ASP.NET文件組成的,為完成某一特定功能,要求在這些ASP.NET文件之間能夠傳送一些參數(shù),這些參數(shù)就可以存為Cookies,這樣當(dāng)文件1想傳送數(shù)據(jù)給文件2時(shí),只要文件1中的數(shù)據(jù)將參數(shù)作為Cookies寫(xiě)入Cookies.txt文件中,然后文件2再?gòu)腃ookies.txt文件中將指定名稱的Cookies信息讀出即可。Cookies中信息的寫(xiě)入工作由Response對(duì)象完成,Cookies信息的讀取工作由Request對(duì)象完成。[在另一篇:Asp.net內(nèi)置對(duì)象之Request對(duì)象中]

二、Cookie對(duì)象的屬性和方法

屬性:
(1).Name:獲取或設(shè)置Cookie的名稱
(2).Value:獲取或設(shè)置Cookie的值
(3).Expires:獲取或設(shè)置Cookie的過(guò)期時(shí)間
(4).Version:獲取或設(shè)置Cookie的符合HTTP維護(hù)狀態(tài)的版本

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

三、Cookie的基本操作

1.創(chuàng)建Cookie對(duì)象并設(shè)置過(guò)期時(shí)間

復(fù)制代碼 代碼如下:

protected void Page_Load(object sender, EventArgs e)
{
//創(chuàng)建Cookie對(duì)象
HttpCookie mycookie = new HttpCookie("MyCookie");//創(chuàng)建一個(gè)名稱為“MyCookie”的Cookie
mycookie.Value = Server.HtmlEncode("大家好,我是Cookie");//設(shè)置Cookie的值
mycookie.Expires = DateTime.Now.AddDays(10);//設(shè)置Cookie過(guò)期時(shí)間
Response.AppendCookie(mycookie);//將一個(gè)HTTP Cookie添加到內(nèi)部Cookie集合中
//Response.Cookies.Add(mycookie);//添加到內(nèi)部Cookie集合中,與上面相同
}

2.獲取Cookie對(duì)象
復(fù)制代碼 代碼如下:

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

四、實(shí)例:Cookie的寫(xiě)入和讀取

Response對(duì)象包含一個(gè)Cookies屬性。可以通過(guò)Cookies屬性設(shè)置、管理Cookies的信息。如果指定的Cookies不存在則創(chuàng)建該Cookies,如果存在則用新值替換舊值。

Cookie對(duì)象需要利用.NET提供的HttpCookie類重新定義。使用“Response.Cookies.Add”將信息發(fā)送并保存到客戶端的瀏覽器,利用Request對(duì)象提供的方法可以將Cookies信息讀取出來(lái)。

如下實(shí)例:

代碼如下:

復(fù)制代碼 代碼如下:

在default1頁(yè)面中:
protected void Page_Load(object sender, EventArgs e)
{

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

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

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

復(fù)制代碼 代碼如下:

在default2頁(yè)面:
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對(duì)象相比Session、Application的優(yōu)缺點(diǎn)

以下總結(jié)來(lái)自:ASP.NET 3.5 開(kāi)發(fā)技術(shù)大全

相比Session和Application對(duì)象,使用Cookie能持久化保存用戶信息。Cookie保存在客戶端,而Session和Application保存在服務(wù)器端,故Cookie能長(zhǎng)久保存。web應(yīng)用程序可以通過(guò)獲取客戶端的Cookie來(lái)進(jìn)行用戶身份認(rèn)證。

Asp.net包含兩個(gè)Cookie集合,通過(guò)HttpRequest的Cookie集合進(jìn)行訪問(wèn),Cookie不是Page類的子類,所以使用方法與Session和Application不同,相比于他們Cookie的優(yōu)點(diǎn)如下:

1.可以配置過(guò)期時(shí)間
2.簡(jiǎn)單:Cookie是一種基于文本的輕量級(jí)結(jié)構(gòu),包括簡(jiǎn)單的鍵值對(duì)
3.數(shù)據(jù)持久:因?yàn)楸4娴娇蛻舳?BR>4.無(wú)任何服務(wù)器資源:因?yàn)榇鎯?chǔ)在本地客戶端

缺點(diǎn)如下

1.大小限制:
2.不確定性:可能用戶刪除Cookie或者禁用
3.安全風(fēng)險(xiǎn):可偽造修改

最后推薦一篇:Cookies

您可能感興趣的文章:
  • ASP.NET內(nèi)置對(duì)象之Application對(duì)象
  • javascript function、指針及內(nèi)置對(duì)象
  • JavaScript 核心參考教程 內(nèi)置對(duì)象
  • js內(nèi)置對(duì)象 學(xué)習(xí)筆記
  • javascript 基礎(chǔ)篇3 類,回調(diào)函數(shù),內(nèi)置對(duì)象,事件處理
  • jsp內(nèi)置對(duì)象及方法詳細(xì)介紹
  • Asp.net內(nèi)置對(duì)象之Request對(duì)象(概述及應(yīng)用)
  • Asp.net內(nèi)置對(duì)象之Server對(duì)象(概述及應(yīng)用)
  • JSP內(nèi)置對(duì)象:Request和Response的簡(jiǎn)單介紹及使用
  • 學(xué)習(xí)Java九大內(nèi)置對(duì)象

標(biāo)簽:江蘇 衡水 衢州 萍鄉(xiāng) 大理 廣元 棗莊 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp.net內(nèi)置對(duì)象之Cookies(簡(jiǎn)介/屬性方法/基本操作及實(shí)例)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266