麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > .NET > 正文

ASP.NET中Cookie狀態(tài)的說(shuō)明與用法

2024-07-10 13:29:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章主要介紹了ASP.NET中Cookie狀態(tài)的說(shuō)明與用法,需要的朋友可以參考下

Cookie 最早出現(xiàn)是在Netscape Navigator 2.0 中。后來(lái) ASP 也引入了這個(gè)技術(shù),它的作用是與 Session 對(duì)象相結(jié)合來(lái)識(shí)別用戶。每當(dāng)用戶開(kāi)始連接站點(diǎn)時(shí),系統(tǒng)將自動(dòng)在內(nèi)存塊中創(chuàng)建一個(gè)用戶有關(guān)的會(huì)話狀態(tài),同時(shí)創(chuàng)建一個(gè)用戶的 ID 存放在瀏覽器端,與當(dāng)前的用戶惟一地聯(lián)系起來(lái)。這樣,服務(wù)器保存了 Session,瀏覽器保存了 Cookie(用戶的 ID)。當(dāng)下一次用戶發(fā)出請(qǐng)求時(shí),請(qǐng)求的用戶將被要求提交用戶的 ID,兩者對(duì)照以正確地還原原來(lái)的會(huì)話狀態(tài)。這就是在無(wú)狀態(tài)協(xié)議的 HTTP 條件下保持用戶標(biāo)志的方法。

可以通過(guò) Response.Cookies.Add() 方法直接向?yàn)g覽器寫入 Cookie,通過(guò) Request.Cookies 方法讀取已經(jīng)設(shè)置好的 Cookie。

寫入Cookie 的方法是,先創(chuàng)建一個(gè)HttpCookie 對(duì)象,通過(guò)這個(gè)對(duì)象來(lái)構(gòu)造一個(gè) Cookie。例如:

 

 
  1. //創(chuàng)建一個(gè) HttpCookie 對(duì)象  
  2. HttpCookie cookie = new HttpCookie("樂(lè)豬網(wǎng)");  
  3. //設(shè)定此 Cookie 值  
  4. cookie.Value = "編程入門網(wǎng)站";  
  5. //加入此 Cookie  
  6. Response.Cookies.Add(cookie); 

Cookie 有臨時(shí)的,也有永遠(yuǎn)的。永久的 Cookie 以文件形式存儲(chǔ)在計(jì)算機(jī)上,關(guān)閉 Internet Explorer 時(shí)仍然保留在計(jì)算機(jī)上。再次訪問(wèn)該站點(diǎn)時(shí),創(chuàng)建該 Cookie 的網(wǎng)站可以讀取。在具體的編程時(shí)候,是在寫入此 Cookie 的時(shí)候,設(shè)定 Cookie 的生命周期,其代碼如下:

 

 
  1. DateTime dtNow = DateTime.Now;  
  2. TimeSpan tsMinute = new TimeSpan(0, 1, 0, 0);  
  3. cookie.Expires = dtNow + tsMinute;  
  4. Response.Cookies.Add(cookie); 

以上代碼是設(shè)定新產(chǎn)生的 Cookie 的生命期為一個(gè)小時(shí),可以通過(guò)修改 TimeSpan 的屬性來(lái)設(shè)定 Cookie 具體的生命期。如果不設(shè)定時(shí)間,默認(rèn)時(shí)間為 20 分鐘。

讀取指定的 Cookie 時(shí)的語(yǔ)句如下:

 

 
  1. HttpCookie cookie = Request.Cookies["Cookie 的名稱"]; 

如果想將讀出的 Cookie 顯示出來(lái)時(shí),可以使用以下語(yǔ)句:

 

 
  1. Response.Write(cookie.Value.ToString()); 

Cookie 是保存在客戶端的字符串,它會(huì)影響用戶的行為,但又不受用戶的直接管理,雖然它只是一種標(biāo)志(字母數(shù)字字符串)而不是程序,不可能用它來(lái)收集用戶的信息,破壞用戶的隱私。但有的用戶仍然不放心,也可能是不愿意別人占用自己的空間,相當(dāng)一部分用戶在瀏覽器中禁止使用 Cookie。這就給識(shí)別用戶帶來(lái)了困難。

ASP.NET 2.0 現(xiàn)在已經(jīng)完全解決了在不使用 Cookie 的情況下,識(shí)別用戶的方法(ASP.NET 1.1 版本只部分地解決了這一問(wèn)題)。解決的方法很簡(jiǎn)單,只需要在應(yīng)用程序的根目錄下的 Web.config 文件中,對(duì) 節(jié)點(diǎn)進(jìn)行配置,其他任何程序都不需要修改。為什么一定要在應(yīng)用程序的根目錄下配置?因?yàn)闀?huì)話狀態(tài)的設(shè)置是應(yīng)用程序范圍的設(shè)置。站點(diǎn)中的網(wǎng)頁(yè)要么全都使用該配置,要么全都不使用。配置的語(yǔ)句是:

 

 
  1. <sessionState cookieless="useUri" /> 

 

 
  1. <sessionState cookieless="AutoDetect" /> 

配置時(shí),當(dāng)編寫到“cookieless=”語(yǔ)句時(shí),將彈出 AutoDetect、useCookies、useDeviceProfile、useUri 四種選擇。選擇 AutoDetect 或 useUri 均可在無(wú) Cookies 的條件下識(shí)別用戶。

雖然在 節(jié)點(diǎn)中還可以配置會(huì)話狀態(tài)管理的其他方面,包括存儲(chǔ)介質(zhì)和連接字符串等,但是,就 Cookie 而言,只需設(shè)置 Cookieless 屬性即可。

系統(tǒng)是如何在無(wú) Cookie 的條件下識(shí)別用戶的呢?原來(lái)當(dāng)進(jìn)行了前面的設(shè)置以后,系統(tǒng)將會(huì)要求用戶自動(dòng)將客戶端的資源信息嵌入到用戶設(shè)用的 URL 語(yǔ)句中。例如,在使用 Cookie 的情況下,某用戶設(shè)用網(wǎng)頁(yè)時(shí)的 URL 是:http://yourserver/folder/default.aspx,現(xiàn)在設(shè)置了不使用 Cookie 的配置,調(diào)用的語(yǔ)句的 URL 將變成:http://yourserver/folder/(session ID here)/default.aspx,其中“session ID here”代表用戶的資源信息所處的位置。該信息已經(jīng)被插入到 URL 的語(yǔ)句中。由于用戶資源信息對(duì)于用戶來(lái)說(shuō)具有惟一性,因此可以利用它與 Session 對(duì)象結(jié)合,一起來(lái)識(shí)別用戶。

下面舉一個(gè)完整的小例子吧,請(qǐng)看下面的源代碼:

 

 
  1. HttpCookie ck = Request.Cookies["cktest"];  
  2. if (ck == null)  
  3. {  
  4. ck = new HttpCookie("cktest");  
  5. ck.Value = "123";  
  6.  
  7. ck.Expires = DateTime.Now.AddSeconds(20);//20秒的有效期  
  8. Response.Cookies.Add(ck);  
  9. Response.Write("new ck");  
  10. }  
  11. else 
  12. {  
  13. Response.Write(ck.Value.ToString());  
  14. }  
  15.  
  16. //在一個(gè)Cookie中儲(chǔ)存多個(gè)信息  
  17. HttpCookie cookie = new HttpCookie("cktest");  
  18. cookie.Values.Add("v1""1");  
  19. cookie.Values.Add("v2""2");  
  20. cookie.Values.Add("v3""3");  
  21. Response.AppendCookie(cookie);  
  22. HttpCookie cookies = Request.Cookies["cktest"];  
  23. string value1 = cookies.Values["v1"];  
  24. string value2 = cookies.Values["v2"];  
  25. Response.Write(value1 + value2); 

以上就是關(guān)于ASP.NET中Cookie狀態(tài)的說(shuō)明與用法,對(duì)于Cookie 使用的利與弊說(shuō)法不一,我們要合理使用Cookie希望本文對(duì)大家學(xué)習(xí)Cookie有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产1区2区3区中文字幕 | 中文字幕极速在线观看 | 一区二区高清视频在线观看 | 亚洲码无人客一区二区三区 | 羞羞的视频| 色就操 | 高颜值美女啪啪 | 国产精品久久久久久久久久 | 国产99精品视频 | 主人在调教室性调教女仆游戏 | 高清av免费 | 成人在线观看免费高清 | 精品久久久久久亚洲精品 | 黄色羞羞视频在线观看 | 久久九九热re6这里有精品 | 免费a视频 | 亚洲欧美日韩在线 | 欧美国产精品一区二区 | 成人在线观看免费高清 | 日本一区二区三区视频在线 | 国产寡妇xxxxxxxx性开放 | 毛片在线免费观看完整版 | 久久亚洲精品久久国产一区二区 | 一色视频 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 欧美乱码精品一区 | 亚洲成人精品在线 | 国产精品久久久久一区二区 | 欧美交在线 | 嫩嫩的freehdxxx | 久久久久亚洲精品国产 | 日韩视频―中文字幕 | 久久99精品久久久久久秒播蜜臀 | 国产精选电影免费在线观看网站 | 中文字幕国产亚洲 | 国产精品久久久久国产精品三级 | 久久久久久久久久美女 | 国产免费资源 | 国产91在线亚洲 | 国产成人午夜精品 | 自拍偷拍亚洲图片 |