Cookies 的讀寫

      大家都知道,網站一般都會用Session保存用戶的ID,但是容易過期,經常丟失,然而用Cookies就比較好了,下面就是我的讀寫Cookies的代碼。

/**//// <summary>
    /// 寫Cookies
    /// </summary>
    /// <param name="response"></param>
    /// <param name="request"></param>
    /// <param name="server"></param>
    /// <param name="IndexValue"></param>
    /// <param name="TextValue"></param>
    /// <param name="ExpriesHour">設置的過期時間</param>
    public void WriteCookies(HttpResponse response,HttpRequest request,HttpServerUtility server,string IndexValue,string TextValue,int ExpriesHour)
    {
        response.Cookies[IndexValue].Value = TextValue;
        response.Cookies[IndexValue].Expires = System.DateTime.Now.AddHours(ExpriesHour);
    }
    /**//// <summary>
    /// 讀Cookies
    /// </summary>
    /// <param name="response"></param>
    /// <param name="request"></param>
    /// <param name="server"></param>
    /// <param name="IndexValue"></param>
    /// <returns></returns>
    public string ReadCookies(HttpResponse response, HttpRequest request, HttpServerUtility server, string IndexValue)
    {
        if (request.Cookies[IndexValue] != null)
            return request.Cookies[IndexValue].Value.ToString();
        return "";
    }
    /**//// <summary>
    /// 刪除Cookies,立即過期
    /// </summary>
    /// <param name="response"></param>
    /// <param name="request"></param>
    /// <param name="server"></param>
    /// <param name="IndexValue"></param>
    public void DeleteCookies(HttpResponse response, HttpRequest request, HttpServerUtility server, string IndexValue)
    {
        if (request.Cookies[IndexValue] != null)
        {           
            HttpCookie cookies=request .Cookies[IndexValue];
            cookies .Expires=System.DateTime.Now.AddHours(-1);
            response.Cookies.Add(cookies);
        }
    }

 


C# :

方法1:
Response.Cookies["username"].Value="gjy";
Response.Cookies["username"].Expires=DateTime.Now.AddDays(1);

方法2:
System.Web.HttpCookie newcookie=new HttpCookie("username");
newcookie.Value="gjy";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);


創建帶有子鍵的cookies:
System.Web.HttpCookie newcookie=new HttpCookie("user");
newcookie.Values["username"]="gjy";
newcookie.Values["password"]="111";
newcookie.Expires=DateTime.Now.AddDays(1);
Response.AppendCookie(newcookie);

 

cookies的讀取:

無子鍵讀取:
if(Request.Cookies["username"]!=null)
{
Response.Write(Server.HtmlEncode(Request.Cookies["username"].Value));
}

有子鍵讀取:
if(Request.Cookies["user"]!=null)
{
Response.Write(Server.HtmlEncode(Request.Cookies["user"]["username"].Value));
}
回答者: skanso - 經理 五級 2-2 17:29
vb:
'COOKIE中設置
'帳號
Response.Cookies("userId") = userId
Response.Cookies("userId").Expires = 60 '保存時間,以天爲單位
'密碼
Response.Cookies("pw") = pw
Response.Cookies("pw").Expires = 60

'從COOKIE取得
Response.Cookies("userId")
Response.Cookies("pw")

如果Cookies中無值,取得爲空字符串""

給我加分哦!~
回答者: huting974 - 見習魔法師 二級 2-2 17:53
Cookies現在經常被大家提到,那麼到底什麼是Cookies,它有什麼作用呢?

Cookies是一種能夠讓網站服務器把少量數據儲存到客戶端的硬盤或內存,或是從客戶端的硬盤讀取數據的一種技術。Cookies是當你瀏覽某網站時,由Web服務器置於你硬盤上的一個非常小的文本文件,它可以記錄你的用戶ID、密碼、瀏覽過的網頁、停留的時間等信息。當你再次來到該網站時,網站通過讀取Cookies,得知你的相關信息,就可以做出相應的動作,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就直接登錄等等。

從本質上講,它可以看作是你的身份證。但Cookies不能作爲代碼執行,也不會傳送病毒,且爲你所專有,並只能由提供它的服務器來讀取。保存的信息片斷以“名/值”對(name-value pairs)的形式儲存,一個“名/值”對僅僅是一條命名的數據。一個網站只能取得它放在你的電腦中的信息,它無法從其它的Cookies文件中取得信息,也無法得到你的電腦上的其它任何東西。

Cookies中的內容大多數經過了加密處理,因此一般用戶看來只是一些毫無意義的字母數字組合,只有服務器的CGI處理程序才知道它們真正的含義。

由於Cookies是我們瀏覽的網站傳輸到用戶計算機硬盤中的文本文件或內存中的數據,因此它在硬盤中存放的位置與使用的操作系統和瀏覽器密切相關。在Windows 9X系統計算機中,Cookies文件的存放位置爲C:WindowsCookies,在Windows NT/2000/XP的計算機中,Cookies文件的存放位置爲C:Documents and Settings用戶名Cookies。

硬盤中的Cookies文件可以被Web瀏覽器讀取,它的命令格式爲:用戶名@網站地址[數字].txt。如筆者計算機中的一個Cookies文件名爲:ch@163[1].txt。要注意的是:硬盤中的Cookies屬於文本文件,不是程序。

Cookies的設置

你可以在IE的“工具/Internet選項”的“常規”選項卡中,選擇“設置/查看文件”,查看所有保存到你電腦裏的Cookies。這些文件通常是以user@domain格式命名的,user是你的本地用戶名,domain是所訪問的網站的域名。如果你使用NetsCape瀏覽器,則存放在“C:PROGRAMFILESNETS- CAPEUSERS”裏面,與IE不同的是,NETSCAPE是使用一個Cookie文件記錄所有網站的Cookies。

我們可對Cookie進行適當設置:打開“工具/Internet選項”中的“隱私”選項卡(注意該設置只在IE6.0中存在,其他版本IE可以單擊“工具/Internet選項”“安全”標籤中的“自定義級別”按鈕,進行簡單調整),調整Cookie的安全級別。通常情況,可以調整到“中高”或者“高”的位置。多數的論壇站點需要使用Cookie信息,如果你從來不去這些地方,可以將安全級調到“阻止所有Cookies”;如果只是爲了禁止個別網站的Cookie,可以單擊“編輯”按鈕,將要屏蔽的網站添加到列表中。在“高級”按鈕選項中,你可以對第一方Cookie和第三方的Cookie進行設置,第一方Cookie是你正在瀏覽的網站的Cookie,第三方Cookie是非正在瀏覽的網站發給你的Cookie,通常要對第三方Cookie選擇“拒絕”。你如果需要保存Cookie,可以使用IE的“導入導出”功能,打開“文件/導入導出”,按提示操作即可。


Cookies的寫入與讀取

Cookies集合是附屬於Response對象及Request對象的數據集合,使用時需要在前面加上Response或Request。

用於給客戶機發送Cookies的語法通常爲:

當給不存在的Cookies集合設置時,就會在客戶機創建,如果該Cookies己存在,則會被代替。由於Cookies是作爲HTTP傳輸的頭信息的一部分發給客戶機的,所以向客戶機發送Cookies的代碼一般放在發送給瀏覽器的HTML文件的標記之前。

如果用戶要讀取Cookies,則必須使用Request對象的Cookies集合,其使用方法是:

需要注意的是,只有在服務器未被下載任何數據給瀏覽器前,瀏覽器才能與Server進行Cookies集合的數據交換,一旦瀏覽器開始接收Server所下載的數據,Cookies的數據交換則停止,爲了避免錯誤,要在程序和前面加上response.Buffer=True。

Cookies的應用

幾乎所有的網站設計者在進行網站設計時都使用了Cookie,因爲他們都想給瀏覽網站的用戶提供一個更友好的、人文化的瀏覽環境,同時也能更加準確地收集訪問者的信息。

網站瀏覽人數管理

由於代理服務器、緩存等的使用,唯一能幫助網站精確統計來訪人數的方法就是爲每個訪問者建立一個唯一的ID。使用Cookie,網站可以完成以下工作:測定多少人訪問過;測定訪問者中有多少是新用戶(即第一次來訪),多少是老用戶;測定一個用戶多久訪問一次網站。

通常情況下,網站設計者是藉助後臺數據庫來實現以上目的的。當用戶第一次訪問該網站時,網站在數據庫中建立一個新的ID,並把ID通過Cookie傳送給用戶。用戶再次來訪時,網站把該用戶ID對應的計數器加1,得到用戶的來訪次數或判斷用戶是新用戶還是老用戶。

按照用戶的喜好定製網頁外觀

有的網站設計者,爲用戶提供了改變網頁內容、佈局和顏色的權力,允許用戶輸入自己的信息,然後通過這些信息對網站的一些參數進行修改,以定製網頁的外觀。

在電子商務站點中實現諸如“購物籃”等功能

可以使用Cookie記錄用戶的ID,這樣當你往“購物籃”中放了新東西時,網站就能記錄下來,並在網站的數據庫裏對應着你的ID記錄當你“買單”時,網站通過ID檢索數據庫中你的所有選擇就能知道你的“購物籃”裏有些什麼。

在一般的事例中,網站的數據庫能夠保存的有你所選擇的內容、你瀏覽過的網頁、你在表單裏填寫的信息等;而包含有你的唯一ID的Cookie則保存在你的電腦裏。


Cookies的缺陷

Cookie雖然被廣泛的應用,並能做到一些使用其它技術不可能實現的功能。但也存在一些不夠完美的方面,給應用帶來不便。

多人共用一臺電腦的問題

任何公共場合的電腦或者許多在辦公室或家裏使用的電腦,都會同時被兩個以上的人使用。這樣,當你用它在網上超市購物時,網上超市或網站會在這臺機器上留下一個Cookie,將來也許就會有某個人試圖使用你的賬戶購物,帶來了不安全的可能。當然,在一些使用多用戶操作系統如Windows NT或UNIX的電腦上,這並不會成爲一個問題。因爲在多用戶操作系統下不同的賬戶的Cookie分別放在不同的地方。

Cookies被刪除時

假如你的瀏覽器不能正常工作,你可能會刪除電腦上所有的臨時Internet文件。然而,一旦這樣操作以後,你就會丟掉所有的Cookies文件。當你再次訪問一個網站時,網站會認爲你是一位新用戶並分配給你一個新的用戶ID以及一個新的Cookie。結果將會造成網站統計的新老用戶比發生偏差,而你也難以恢復過去保存的參數選擇。

一人使用多臺電腦時

有的人一天之中經常使用一臺以上的電腦。例如在辦公室裏有一臺電腦、家裏有一臺、還有移動辦公用的筆記本電腦。除非網站使用了特別的技術來解決這一問題,否則,你將會有三個不同的Cookies文件在這三臺機器上,而在三臺機器上訪問過的任何網站都將會把你看成三個不同的用戶。


防範Cookies泄密

想知道你訪問的網站是否在你的硬盤或內存中寫入了Cookies信息嗎?只需執行下面的操作步驟,就可以瞭解和控制你正在訪問的網站的Cookies信息。

步驟一 點擊IE窗口中的“工具” “In-ernet選項”,打開“Internet選項”設置窗口;

步驟二 點擊“Internet選項”設置窗口中的“安全”標籤,然後再點擊“自定義級別”按鈕,進入“安全設置”窗口;

步驟三 找到“安全設置”窗口中的“Cookies”設置項。“Cookies”設置項下有兩個分選項,其中“允許使用存儲在您計算機上的Cookies”是針對存儲在用戶計算機硬盤中的Cookies文件;“允許使用每個對話Cookies(未存儲)”是針對存儲在用戶計算機內存中的Cookies信息。存儲在硬盤中的Cookies文件是永久存在的,而存儲在內存中的Cookies信息是臨時的。要想IE在即將接收來自Web站點的所有Cookies時進行提示,可分別選擇上面兩個分選項中的“提示”項。當然,你也可以選擇“啓用”,允許IE接受所有的Cookies信息(這也是IE的默認選項);選擇“禁止”,則是不允許Web站點將Cookies存儲到您的計算機上,而且Web站點也不能讀取你計算機中已有的Cookies。

IE6.0提供了更爲可靠的個人隱私及安全保護措施,可以讓用戶來控制瀏覽器向外發送信息的多少。在“Internet 選項”窗口中新增了“隱私”選項卡(圖1),用戶可以在其中直接設置瀏覽時的隱私級別,按需要控制其他站點對自己電腦所使用的Cookies。如果我們正在瀏覽的站點使用了Cookie,那麼在瀏覽器狀態欄中會有一個黃色驚歎號的標記,雙擊後可打開“隱私報告”對話框,用戶可以在其中查看具體的隱私策略,還可直接點擊“設置”按鈕後在上述“隱私”選項卡中調節安全隱私級別。

在“常規”選項卡中還增加了“刪除Cookies”按鈕(圖2),方便用戶直接清除本機上的Cookies。另外,在“工具” “選項” “高級”選項卡中也增加了一些進一步提高安全性的選項(如關閉瀏覽器時清空Internet臨時文件)。其實,如何更好地保護個人隱私和安全是微軟下一代“.NET”戰略軟件中的關鍵技術,現在IE6.0已經嘗試着邁出了第一步。

另外,由於Cookies的信息並不都是以文件形式存放在計算機裏,還有部分信息保存在內存裏。比如你在瀏覽網站的時候,Web服務器會自動在內存中生成Cookie,當你關閉IE瀏覽器的時候又自動把Cookie刪除,那樣上面介紹的兩種方法就起不了作用,我們需要藉助註冊表編輯器來修改系統設置。要注意的是,修改註冊表前請作備份,以便出現問題後能順利恢復。

運行Regedit,找到如下鍵值:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionInternet SettingsCacheSpecial PathsCookies,這是Cookies在內存中的鍵值,把這個鍵值刪除。至此Cookies無論以什麼形式存在,我們都不用再害怕了。

最後有必要說明的一點是:杜絕Cookies雖然可以增強你電腦的信息安全程度,但這樣做同樣會有一些弊端。比如在一些需要Cookies支持的網頁上,會發生一些莫名其妙的錯誤,典型的例子就是你以後不能使用某些網站的免費信箱了。


Cookies欺騙

通過分析Cookie的格式,我們知道,最後兩項中分別是它的URL路徑和域名,服務器對Cookie的識別靠的就是這兩個參數。正常情況下,我們要瀏覽一個網站時輸入的URL便是它的域名,需要經過域名管理系統DNS將其轉化爲IP地址後進行連接。若能在DNS上進行一些設置,把目標域名的IP地址對應到其它站點上,我們便可以非法訪問目標站點的Cookie了。

要進行Cookies欺騙,其實很簡單。比如在Win9X下的安裝目錄下,有一名爲hosts.sam的文件,以文本方式打開後會看到這樣的格式:

127.0.0.1 localhost

經過設置,便可以實現域名解析的本地化,只需將IP和域名依上面的格式添加到文件中並另存爲hosts即可。hosts文件實際上可以看成一個本機的DNS系統,它可以負責把域名解釋成IP地址,它的優先權比DNS服務器要高,它的具體實現是TCP/IP協議中的一部分。

比如我們要讀取的目標站點 www.abc.com 所生成的Cookies信息,可以藉助www.def.com(自己的站點)。在www.def.com 存放用來進行欺騙所需的文件,通過它讀取和修改對方的Cookie。

步驟一 ping出www.def.com 的IP地址:

ping www.def.com

Reply from 192.168.0.1: bytes=32 time=20ms TTL=244

然後修改hosts.sam文件如下:

192.168.0.1 www.abc.com

並保存爲hosts文件。

步驟二 讀取Cookies信息:

將用來讀取Cookie的頁面傳至www.def.com ,此時連上www.abc.com,由於我們進行本機DNS域名解析的修改,這時網絡連接的並不是www.abc.com,而是www.def.com

這樣www.abc.com設在本地的Cookie便可被讀出。

步驟三 同樣道理,你可對讀出的數據進行修改,並可將修改後的信息寫入Cookie中。修改完畢後,刪掉hosts文件,再重新進入www.abc.com,此時所使用的Cookies數據就是你制定的數據。

總之,在某種程度上雖然可以實現Cookies的欺騙,給網絡應用帶來不安全的因素,但Cookies文件本身並不會造成用戶隱私的泄露,也不會給黑客提供木馬程序的載體,只要合理使用,它們會給網站管理員進行網站的維護和管理以及廣大用戶的使用都帶來便利。


Cookies集合具有以下幾種屬性

1.Expires屬性:此屬性用來給Cookies設置一個期限,在期限內只要打開網頁就可以調用被保存的Cookies,如果過了此期限Cookies就自動被刪除。如:

設定Cookies的有效期到2004年4月1日,到時將自動刪除。如果一個Cookies沒有設定有效期,則其生命週期從打開瀏覽器開始,到關閉瀏覽器結束,每次運行後生命週期將結束,下次運行將重新開始。

2.Domain屬性:這個屬性定義了Cookies傳送數據的唯一性。若只將某Cookies傳送給搜狐主頁時,則可使用如下代碼:

3.Path屬性:定義了Cookies只發給指定的路徑請求,如果Path屬性沒有被設置,則使用應用軟件的缺省路徑。

4.Srcure屬性:指定Cookies能否被用戶讀取。

5.Haskeys屬性:如果所請求的Cookies是一個具有多個鍵值的Cookies字典,則返回True,它是一個只讀屬性。
參考資料:http://tech.pcicp.com/tools/nettools/browser/2004/12/21/1103612532d8780.html
回答者: zhangqi645 - 助理 二級 2-3 04:38
Cookies

很少有網絡技術能夠象cookies來在網絡用戶間製造這樣大的爭論。Cookies只是一個無辜的名字,但是許多用戶將這與邪惡的目的連在一起。

Netscape首先在它的瀏覽器中引入了cookies,從那時起,World Wide Web協會就支持cookie標準。大部分瀏覽器現在都兼容cookie的使用。

Cookies是什麼?瀏覽器用一個或多個限定的文件支持Cookie。這些文件在Windows機器上叫做Cookie文件或者在Macintosh中叫做magic cookie文件,被網站用來在上面存儲Cookie數據。網站可以在這些Cookie文件中插入信息。這樣對有些網絡用戶就有些副作用。有些用戶認爲這造成了對隱私的侵犯。更糟的是:有些人認爲Cookie是對個人空間的侵佔。

目前有些Cookie是臨時的,還有一些則是持續的。例如,cookies被Active Sever Pages用來跟蹤用戶進程直到用戶離開網站。另外有些Cookie則保持在Cookie文件中直到用戶返回時又進行調用。

在cookie文件中保存cookies會產生很大的問題。主要是有些用戶擔心會跟蹤用戶網上衝浪的習慣。害怕這種信息如果落入一些‘黑手’,那麼個人也就可能成爲一大堆廣告垃圾信箋的對象,不過,這種擔心根本不會發生,因爲無法跨過網站來獲得cookie信息,以這種目的來應用Cookie是不可能的。不過,由於一些用戶錯誤的理解以及‘以訛傳訛’,一些瀏覽器開發商別無選擇只能作出響應(例如Netscape4.0提供了屏蔽Cookie的選項)。

 

注意

目前一些有關Cookie侵犯隱私權的討論已經到了歇斯底里的地步,甚至包括網站站長、專家級的一些人物也在這種認識上犯過錯誤。

目前的主流瀏覽器是這樣的,IE和NETSCAPE都提供了附加的控制Cookie的手段,其中NETSCAPE4.0不但可以對接受Cookie進行警告,而且還可以屏蔽掉Cookie, IE3.0也可以屏蔽Cookie,但是由於微軟開發出了Active Server Pages,因此在IE4.0中就只能進行接受警告而沒有提供屏蔽選項。

更過分的是,很多技巧的技術甚至已經可以在不能屏蔽cookie的瀏覽器上進行Cookie的屏蔽。例如,將你的cookie文件作成只讀(參見http://www.cookiecentral.com

很不幸,由於上述原因,你的網站利用Cookie就會有各種麻煩,甚至造成Session的調用失敗。

Cookie是怎樣工作的

Cookies將通過HTTP Headers來從服務端返回到瀏覽器上。服務端首先在響應中利用Set-Cookie header來創建一個Cookie,瀏覽器後面的請求的cookie header中就會返回這個Cookie來完成瀏覽器的認證。

假設你創建了一個名字爲UserName的Cookie來包含訪問者的信息,創建Cookie時,Server的Header就象下面(假設訪問者爲Bill Gates):

Set-Cookie: UserName=BILL+Gates;path=/;domain=aspsite.com;

expires=Tuesday,01-Jan-99 00:00:01 GMT

這個Header就在瀏覽器的電腦上的Cookie文件中添加了一條記錄。瀏覽器將名字爲UserName的Cookie賦值爲Bill Gates。請注意這個cookie的值是進行了URL-encoded操作的。

後來,header通知瀏覽器將cookie通過請求以忽略路徑的方式返回服務端,因此,一個Cookie設定後,其應用的所有文件就必須在同一個目錄下,例如如果開始指定的路徑是/private目錄,那麼cookie Header對文件:/private/mypage.asp的請求就可以,而/mypage.asp由於路徑變動就無法利用這個Cookie了。

domain屬性能夠在瀏覽器端更加對cookie發送進行限定。在這個例子中,cookie只能傳到指定的服務器上,而決不會跑到什麼www.yahoo.com或者什麼其他網站。

注意

現在的瀏覽器在判斷Cookie的路徑時是區分大小寫的,這就意味着如果路徑是/private,那麼以/PRIVATE路徑方式就無法進行這個Cookie的調用和認證。

最後,Expires標記限定了Cookies的過期時間,在例子中的Header中,限定瀏覽器將該Cookie保存到1999年1月1日第一秒,實際上,瀏覽器在接受的Cookie很多時,還會自動進行刪除。

瀏覽器創建了一個Cookie後,在每一個針對該網站的請求時就都會在Header中帶着這個Cookie,也就是每一次滿足該路徑的情況下這個Cookie都會有效。不過,對於其他網站的請求Cookie是絕對不會跟着發送的。瀏覽器會這樣一直髮送到Cookies過期爲止。Cookie Header如下:

cookie: username: Bill+Gates

在Active Server Pages中創建和讀取Cookies

當利用Active Server Pages創建了一個cookie之後,你就可以使用Response對象的Cookie集合了。你可以創建兩種cookie;一種是單值的,另一種可以認爲是cookie字典類型,即允許多個鍵值對的存在。

創建單值的相對簡單,如下腳本:

<% Response.Cookies(“Username”)=”Bill Gates”

Response.Cookies(“Username”).Expires=”Jan 1,1999”

%>

這個腳本的工作一目瞭然,將名字爲Username的Cookie賦值爲Bill Gates, 同時將過期時間限定爲1999年1月1日,這裏面需要說明的是,Expires屬性如果不進行賦值,那麼默認的就是用戶一離開網站就過期。

由於這個例子腳本創建的是Header的部分,那麼你就必須在你的Active Server Pages的任何輸出語句之前進行這個腳本的操作,或者使用Buffer輸出,(參看14章的有關小節)。

前面的腳本是創建一個Cookie的簡單示例,只是使用了最常用的Expires屬性,其實還有許多其他屬性也可以自行設置,下面是一個比較完全的例子:

<%

Response.Cookies(“Username”)=”Steve Jobs”

Response.Cookies(“Username”).Expires=”Jan 1, 1999”

Response.Cookies(“Username”).Path=”/examples”

Response.Cookies(“Username”).Domain=”aspsite.com”

Response.Cookies(“Username”).Secure=True

%>

這個腳本例子和前面的其實沒有什麼區別,不過有三個附加的屬性需要解釋:

■Path屬性是用來更加嚴格的限定瀏覽器發送Cookie,在這個例子中,只有針對於 /examples目錄的請求的Header中才攜帶Cookie信息,例如/examples/hello.asp以及 /examples/chapter16/hello.asp的請求都會在Header上攜帶Cookie信息,但是如果是瀏覽器對/hello.asp的請求就不會攜帶該Cookie信息。Path屬性的默認值是該Cookie創建的Active Server Pages所在的路徑。(也就是說,即便不做指定,也不會跨過目 錄發送Cookie)

■Domain屬性,限定了Cookie發送的網站,例子中的aspsite.com說明cookie可以被髮送到www.aspsite.com或者beetle.aspsite.com或者yeah.aspsite.com等等,同樣作爲默認值是該Cookie創建的網站。

■最後是Secure屬性,顧名思義,該屬性設爲True則傳遞中就實行了加密算法,如果你正在使用安全接口層,那麼你就可以使用這個屬性(參見第二章,安裝使用 Internet Information Server)

在一個Active Server Page中讀取cookie,你只需要使用Request對象的Cookies集合, 例如,輸出一個cookie值,那麼腳本如下:

<%=Request.Cookies(“Username”) %>

這個腳本將名字爲Username的Cookie值進行了輸出,和以前同樣的是,你依然可以利用For Each循環或者利用Count屬性和For …Next循環結合的方式來將Cookie集合 的所有屬性值顯示出來,下面這個例子的運行結果應當無須解釋了。

<%

For EACH thing IN Request.Cookies

Response.write(“<BR>”&thing&Request.Cookies(thing))

NEXT

%>

創建多個Cookie

你當然還可以創建不止一個Cookie,只是在Response對象的Cookies集合中簡單的定義多個名稱就可以了。不過,許多瀏覽器對一個指定網站就限定了三到四個Cookie。

創建多個Cookie還有一種選擇,就是創建一個Cookie字典,那麼一個Cookie字典中就可以含有多個鍵值對,下面是這麼一個字典的例子:

<%

Response.Cookies(“User”)(“Name”)=”Bill Gates”

Response.Cookies(“User”)(“Password”)=”billions”

%>

這個腳本創建了一個名爲User的Cookie字典,其中含有兩個鍵分別是Name和 Password,當這麼Cookie字典創建時,請求的Header中是這樣的信息:

Set-Cookie:User=Name=Bill+Gates&Password=billions

一個名字爲User的Cookie創建了,其中含有兩個鍵值對,這意味着所有的鍵和相應的值都在一個大的Cookie中。

接受這樣的Cookie值,你還可以利用以前的Response對象的Cookies集合,既可以將其全部顯示,(這樣顯示就是沒有經過解碼的Header中的源代碼,也就是上面Header中的信息,這樣一般都是用於調試工作)也可以按每一個鍵的相應名稱顯示相應值,如下例,無須解釋結果:

<%=Request.Cookies(“User”) %>

<%=Request.Cookies(“User”)(“Name”)%>

<%=Request.Cookies(“User”)(”Name”)%>

注意

利用Cookie技術傳遞諸如密碼這樣的信息要特別小心,因爲一般說來,這種信息是未經加密的,當然,如果你的網站有安全接口層技術,也可以進行加密傳輸,但是在瀏覽器端該信息還是存放在文本文件中。

如果希望知道一個Cookie是否是一個Cookie字典,可以用HasKeys屬性,例如下面腳本如果返回值爲True,那麼就是一個Cookie字典。

<%=Request.Cookies(“User”).HasKeys %>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章