国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Request.Cookies 和 Response.Cookies 的區別

2019-11-17 01:53:49
字體:
來源:轉載
供稿:網友

Request.Cookies 和 Response.Cookies 的區別

.NET中提供了讀寫Cookie的多種方法,Request.Cookies 是客戶端通過 Cookie 標頭形式由客戶端傳輸到服務器的 Cookie;Response.Cookies 在服務器上創建并以 Set-Cookie 標頭的形式傳輸到客戶端。也就是說,一個是客戶端向服務器端發送的來的,一個是服務器發送到客戶端的。

第一次創建Cookies的時候,下面的2種讀取方法讀取到的內容是一樣:

C# 代碼HttpCookie hc = new HttpCookie("User2");hc["UserName"] = "mengxianhui";Response.Cookies.Add(hc);Response.Cookies["User1"]["UserId"] = "net_lover";Response.Write(Request.Cookies["User1"].Values["UserId"].ToString());Response.Write(Request.Cookies["User2"].Values["UserName"].ToString());Response.Write("<hr>");Response.Write(Response.Cookies["User1"].Values["UserId"].ToString());Response.Write(Response.Cookies["User2"].Values["UserName"].ToString());但是,一旦Cookie存在,再使用上面的方法進行讀取,結果是有差別的,Response.Cookies可以立即讀取到新的Cookie,而Request.Cookies讀取到仍是上一次設置的,也就是必須通過客戶端向服務器發送請求時才能讀取到。為什么會有這樣的差別,應該是.NET實現的問題,里面有這么一段:C# 代碼if (includeResponse && (this.Response != null)){ HttpCookieCollection cookies = this.Response.Cookies; if (cookies.Count > 0) { HttpCookie[] dest = new HttpCookie[cookies.Count]; cookies.CopyTo(dest, 0); for (int i = 0; i < dest.Length; i++) { cookieCollection.AddCookie(dest[i], true); } }}在Cookie不存在時,它應該是讀取Response.Cookies里面的Cookie了,所以第一次讀取相同,而以后讀取不同的原因吧。

另外,Response.Cookies必須是在設置完后讀取,不能像Request.Cookies那樣隨時讀取,如在別的頁面讀取Cookies,下面的方法就是錯誤的

C# 代碼PRotected void Page_Load(object sender, EventArgs e){ Response.Write(Response.Cookies["User1"].Values["UserId"].ToString()); Response.Write(Response.Cookies["User2"].Values["UserName"].ToString());}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宜丰县| 怀远县| 库尔勒市| 仙居县| 慈利县| 罗山县| 渑池县| 阳城县| 清丰县| 原平市| 辽中县| 泰安市| 盐津县| 卢龙县| 东兴市| 长宁县| 河西区| 偏关县| 万宁市| 黄梅县| 凤台县| 海口市| 土默特左旗| 固原市| 莱州市| 南开区| 唐山市| 衢州市| 东乡县| 常山县| 丽水市| 任丘市| 永和县| 墨竹工卡县| 上饶县| 泽库县| 江都市| 张北县| 崇左市| 九台市| 陇川县|