Cookie就是所謂的 " 小甜餅 " ,他最早出現(xiàn)是在Netscape Navigator 2.0中。Cookie其實就是由Web服務器創(chuàng)建的、將信息存儲在計算機上的文件。那么為什么Web服務器要在客戶機上面創(chuàng)建如此文件?這是因為當客戶機發(fā)送一個請求到WEB服務器時(譬如準備瀏覽頁面時),無論此客戶機是否是第一次來訪,服務器都會把它當作第一次來對待,WEB服務器所做的工作只是簡單的進行響應,然后就關閉與該用戶的連接。這樣處理過程所帶來的缺點時顯而易見的。自從網景公司開發(fā)出Cookie以后,就可以利用Cookie來保存用戶的識別信息。Cookie的作用可以記錄了您在該站點上曾經訪問過的頁面,由此幫助您下次訪問該站點時自定義查看。Cookies 也可以存儲個人可識別信息。個人可識別信息是可以用來識別或聯(lián)系您的信息,例如姓名、電子郵件地址、家庭或工作地址,或者電話號碼。然而,網站只能訪問您提供的個人可識別信息。例如,除非您提供電子郵件名稱,否則網站將不能確定您的電子郵件名稱。另外,網站不能通過Cookie來訪問計算機上的其他信息。當然除非你提供。那么Cookie到底存放在什么地方?如果機器的系統(tǒng)是視窗98且安裝在 " C " 盤中,那么Cookie存放在 " C:\Windows\Cookies " 目錄中;如果機器系統(tǒng)是視窗2000且安裝在 " C " 盤中,那么Cookie存放在 " C:\Documents and Settings\Administrator\Cookies " 目錄中。了解了Cookie這么多知識,我們還是來了解一下本文的重點-- C#是如何進行Cookie方面編程的。主要內容有二點:其一是 C#是如何寫入Cookie;其二是 C#是如何訪問自己寫入的Cookie。
一、本文介紹的程序設計和運行的軟件環(huán)境:
微軟公司視窗2000服務器版
.Net FrameWork SDK Beta 2
C#進行Cookie方面編程是通過ASP.NET頁面來實現(xiàn)的。
二、C#如何寫入Cookie:
為了寫入Cookie,他的步驟主要有三步,具體如下:
首先就要創(chuàng)建一個HttpCookie對象,通過這個對象來構造一個Cookie,這個對象的名稱就是以后產生的Cookie名稱。具體如下代碼:
HttpCookie cookie = new HttpCookie ( " 用戶定義的Cookie名稱 " ) ;
然后對創(chuàng)建的HttpCookie對象的 " Value " 屬性分配一個字符串值, " Value " 的值就是后來產生的Cookie的值。具體代碼如下:
cookie.Value = "用戶給Cookie賦值 " ; 如果你想寫入的Cookie數值不是一個簡單的字符串,而是一個復雜的數據類型,我們知道這些數據類型是不能直接存貯到Cookie中的,因為Cookie中只能存貯字符串。但你可以通過一個變通的方法,就是把這個復雜的數據類型轉換成多個字符串,然后把這多個字符串同時賦值給產生的Cookie值,這樣Cookie中的內容就豐富了,以后利用Cookie完成的功能也強大了。這時你可能就會明白為什么當你瀏覽Web服務器,Web服務器會知道你什么時候曾經瀏覽過,并且曾經待過多長時間等信息了。因為這些信息已經存儲到你第一次瀏覽頁面時,Web服務器產生的Cookie中去了。下列代碼是把多個字符串存儲到Cookie的例子:
cookie [ " 姓名 " ] = " 王天 ";
cookie [ " 性別 " ] = " 男 ";
cookie [ " 年齡 " ] = " 26 ";
Cookie有臨時的,也有永遠的。永久 Cookie 以文件形式存儲在計算機上,關閉 Internet Explorer 時仍然保留在計算機上。再次訪問該站點時,創(chuàng)建該 Cookie 的網站可以讀取。在具體的編程時候,是在寫入此Cookie的時候,設定Cookie的生命周期,具體如下代碼:
DateTime dtNow = DateTime . Now ;
TimeSpan tsMinute = new TimeSpan ( 0 , 1 , 0 , 0 ) ;
cookie . Expires = dtNow + tsMinute ;
以上代碼是設定產生的Cookie的生命期為 " 一個小時 " ,你可以通過修改 " TimeSpan " 屬性來設定產生Cookie的具體生命期。
.最后調用 " Response.Cookies " 對象的 " Add() " 方法,加入此對象,這樣就可以產生一個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 ) ;
//設定此cookies值
cookie . Value = ValueField . Text ;
//設定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的程序運行界面
當然上面的代碼產生的Cookie在內容上面有點單調了。其實對于內容十分豐富的Cookie來說,他還有許多屬性,充分的利用這些屬性,才可以利用了Cookie的強大功能。下表是Cookie的一些常用的屬性:
屬性 描述
Domain 設定/獲得Cookie應屬于的域名。一旦設定了此屬性,則只限定于此域名的Web服務器訪問此Cookie。可以設定為 "ccw.com.cn "
Path 設定/獲得Cookie應屬于的路徑,如果設定后,則訪問此Cookie的Web頁面則被限定在此路徑里面。其他路徑的Web頁面則不能訪問。
Secure 設定/獲得一個標識來表明利用HTTP協(xié)議是否能夠安全的傳輸Cookie到客戶端的瀏覽器。
HasKeys 表明是否此Cookie是否是多個字符串組成的。
在寫入Cookie的時候,最大限度的利用這些屬性,對于最大程度的利用寫入的Cookie是十分重要的。
三、C#是如何讀取已產生的Cookie:
讀取指定的Cookie比起寫入C
?石家莊網站建設的優(yōu)點:我們是專屬定制,制作符合您公司業(yè)務、風格的網站,這就做到給您制作的網站是網絡上獨一無二的網站,這樣更有利于搜索引擎的收錄。如果您喜歡網絡上某個風格的網站或者網站模板,我們是只仿制而不直接套用,我們會對其中的結構和樣式做增減優(yōu)化,做…
?競價排名營銷是一種通過 競價購買搜索引擎中關鍵詞或關鍵短語的廣告方式。競價排名營銷分為兩種類型。 第一種,直接為真正的搜索引擎結果的排名付費,也就是說付的錢越多,網頁所獲得的排名名也就越高。 第二種則更類似于普通的廣告。這種競價排名營銷方式通過…
?網站優(yōu)化對網站來說是非常重要的,直接決定和影響著網站所起到的作用,以及在各個地方當中的排名。在進行seo優(yōu)化的過程中,我們必須要堅持一定的原則,真正的把這些事情做得更好,才可以確保最終的結果,這對于我們來說是非常重要的事。 SEO優(yōu)化主要分為8小步: …