主營業(yè)務(wù):網(wǎng)站制作 網(wǎng)站優(yōu)化 小程序制作 石家莊網(wǎng)站制作網(wǎng)站建設(shè)有限公司歡迎您!
石家莊閃云網(wǎng)絡(luò)科技有限公司
客服熱線15383239821
如何讓自己的網(wǎng)站更有質(zhì)量?

cookie介紹

發(fā)布時間:2010/10/1 8:23:23

Cookie就是所謂的 "   小甜餅 "   ,他最早出現(xiàn)是在Netscape   Navigator   2.0中。Cookie其實就是由Web服務(wù)器創(chuàng)建的、將信息存儲在計算機上的文件。那么為什么Web服務(wù)器要在客戶機上面創(chuàng)建如此文件?這是因為當(dāng)客戶機發(fā)送一個請求到WEB服務(wù)器時(譬如準(zhǔn)備瀏覽頁面時),無論此客戶機是否是第一次來訪,服務(wù)器都會把它當(dāng)作第一次來對待,WEB服務(wù)器所做的工作只是簡單的進行響應(yīng),然后就關(guān)閉與該用戶的連接。這樣處理過程所帶來的缺點時顯而易見的。自從網(wǎng)景公司開發(fā)出Cookie以后,就可以利用Cookie來保存用戶的識別信息。Cookie的作用可以記錄了您在該站點上曾經(jīng)訪問過的頁面,由此幫助您下次訪問該站點時自定義查看。Cookies   也可以存儲個人可識別信息。個人可識別信息是可以用來識別或聯(lián)系您的信息,例如姓名、電子郵件地址、家庭或工作地址,或者電話號碼。然而,網(wǎng)站只能訪問您提供的個人可識別信息。例如,除非您提供電子郵件名稱,否則網(wǎng)站將不能確定您的電子郵件名稱。另外,網(wǎng)站不能通過Cookie來訪問計算機上的其他信息。當(dāng)然除非你提供。那么Cookie到底存放在什么地方?如果機器的系統(tǒng)是視窗98且安裝在 "   C "   盤中,那么Cookie存放在 "   C:\Windows\Cookies "   目錄中;如果機器系統(tǒng)是視窗2000且安裝在 "   C "   盤中,那么Cookie存放在 "   C:\Documents   and   Settings\Administrator\Cookies "   目錄中。了解了Cookie這么多知識,我們還是來了解一下本文的重點--   C#是如何進行Cookie方面編程的。主要內(nèi)容有二點:其一是   C#是如何寫入Cookie;其二是   C#是如何訪問自己寫入的Cookie。  

一、本文介紹的程序設(shè)計和運行的軟件環(huán)境:  

微軟公司視窗2000服務(wù)器版  
.Net   FrameWork   SDK   Beta   2  

C#進行Cookie方面編程是通過ASP.NET頁面來實現(xiàn)的。  

二、C#如何寫入Cookie:  

為了寫入Cookie,他的步驟主要有三步,具體如下:  

首先就要創(chuàng)建一個HttpCookie對象,通過這個對象來構(gòu)造一個Cookie,這個對象的名稱就是以后產(chǎn)生的Cookie名稱。具體如下代碼:
HttpCookie   cookie   =   new   HttpCookie   (   "   用戶定義的Cookie名稱 "   )   ;  

然后對創(chuàng)建的HttpCookie對象的 "   Value "   屬性分配一個字符串值, "   Value "   的值就是后來產(chǎn)生的Cookie的值。具體代碼如下:
cookie.Value   =   "用戶給Cookie賦值 "   ;   如果你想寫入的Cookie數(shù)值不是一個簡單的字符串,而是一個復(fù)雜的數(shù)據(jù)類型,我們知道這些數(shù)據(jù)類型是不能直接存貯到Cookie中的,因為Cookie中只能存貯字符串。但你可以通過一個變通的方法,就是把這個復(fù)雜的數(shù)據(jù)類型轉(zhuǎn)換成多個字符串,然后把這多個字符串同時賦值給產(chǎn)生的Cookie值,這樣Cookie中的內(nèi)容就豐富了,以后利用Cookie完成的功能也強大了。這時你可能就會明白為什么當(dāng)你瀏覽Web服務(wù)器,Web服務(wù)器會知道你什么時候曾經(jīng)瀏覽過,并且曾經(jīng)待過多長時間等信息了。因為這些信息已經(jīng)存儲到你第一次瀏覽頁面時,Web服務(wù)器產(chǎn)生的Cookie中去了。下列代碼是把多個字符串存儲到Cookie的例子:
cookie   [   "   姓名 "   ]   =   "   王天 ";
cookie   [   "   性別 "   ]   =   "   男 ";
cookie   [   "   年齡 "   ]   =   "   26 ";

Cookie有臨時的,也有永遠的。永久   Cookie   以文件形式存儲在計算機上,關(guān)閉   Internet   Explorer   時仍然保留在計算機上。再次訪問該站點時,創(chuàng)建該   Cookie   的網(wǎng)站可以讀取。在具體的編程時候,是在寫入此Cookie的時候,設(shè)定Cookie的生命周期,具體如下代碼:
DateTime   dtNow   =   DateTime   .   Now   ;
TimeSpan   tsMinute   =   new   TimeSpan   (   0   ,   1   ,   0   ,   0   )   ;
cookie   .   Expires   =   dtNow   +   tsMinute   ;

以上代碼是設(shè)定產(chǎn)生的Cookie的生命期為 "   一個小時 "   ,你可以通過修改 "   TimeSpan "   屬性來設(shè)定產(chǎn)生Cookie的具體生命期。  
.最后調(diào)用 "   Response.Cookies "   對象的 "   Add() "   方法,加入此對象,這樣就可以產(chǎn)生一個Cookie了。具體代碼如下:
Response   .   Cookies   .   Add   (   cookie   )   ;
下列代碼就是在   C#寫入Cookie的完整代碼(Write.aspx):
<%   @   language   =   "C# "   %>
<script   runat   =   "server "   >
void   WriteClicked   (   Object   Sender   ,   EventArgs   e   )
{
//創(chuàng)建一個HttpCookie對象
HttpCookie   cookie   =   new   HttpCookie   (   NameField   .   Text   )   ;
//設(shè)定此cookies值
cookie   .   Value   =   ValueField   .   Text   ;
//設(shè)定cookie的生命周期,在這里定義為一個小時
DateTime   dtNow   =   DateTime   .   Now   ;
TimeSpan   tsMinute   =   new   TimeSpan   (   0   ,   1   ,   0   ,   0   )   ;
cookie   .   Expires   =   dtNow   +   tsMinute   ;
cookie   [   "姓名 "   ]   =   "王天 "   ;
cookie   [   "性別 "   ]   =   "男 "   ;
cookie   [   "年齡 "   ]   =   "26 "   ;
//加入此cookie
Response   .   Cookies   .   Add   (   cookie   )   ;
Response   .   Write   (   NameField   .   Text   +   "Cookie創(chuàng)建完畢   <br   >   <hr   >   "   )   ;
}
</script   >
<html   >
<body   >  
<h3   >   在   C#頁面中創(chuàng)建cookie   </h3   >
此cookie的生命周期定義為一個小時
<form   runat= "server ">
Cookie名稱: <asp:textbox   id   =   "NameField "   runat   =   "server "   />   <br   >
Cookie的值: <asp:textbox   id   =   "ValueField "   runat   =   "server "   />   <br   >
<asp:button   text   =   "創(chuàng)建Cookie "   onclick   =   "WriteClicked "   runat   =   "server "   />   <br   >
</form   >
</body   >
</html   >  

下圖是上面代碼運行后的界面:  

圖01:C#寫入Cookie的程序運行界面

當(dāng)然上面的代碼產(chǎn)生的Cookie在內(nèi)容上面有點單調(diào)了。其實對于內(nèi)容十分豐富的Cookie來說,他還有許多屬性,充分的利用這些屬性,才可以利用了Cookie的強大功能。下表是Cookie的一些常用的屬性:  

屬性   描述  
Domain   設(shè)定/獲得Cookie應(yīng)屬于的域名。一旦設(shè)定了此屬性,則只限定于此域名的Web服務(wù)器訪問此Cookie??梢栽O(shè)定為 "ccw.com.cn "  
Path   設(shè)定/獲得Cookie應(yīng)屬于的路徑,如果設(shè)定后,則訪問此Cookie的Web頁面則被限定在此路徑里面。其他路徑的Web頁面則不能訪問。  
Secure   設(shè)定/獲得一個標(biāo)識來表明利用HTTP協(xié)議是否能夠安全的傳輸Cookie到客戶端的瀏覽器。  
HasKeys   表明是否此Cookie是否是多個字符串組成的。  

在寫入Cookie的時候,最大限度的利用這些屬性,對于最大程度的利用寫入的Cookie是十分重要的。  

三、C#是如何讀取已產(chǎn)生的Cookie:  

讀取指定的Cookie比起寫入C

相關(guān)新聞推薦

在線客服 : 服務(wù)熱線:15383239821 電子郵箱: 27535611@qq.com

公司地址:石家莊市新華區(qū)九中街江西大廈4062

備案號:冀ICP備2022000585號-4