国产探花免费观看_亚洲丰满少妇自慰呻吟_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());}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荔波县| 塘沽区| 伊金霍洛旗| 仙桃市| 阳山县| 怀来县| 镇康县| 冷水江市| 蓝田县| 苍梧县| 磐安县| 清丰县| 江北区| 深水埗区| 宕昌县| 郑州市| 青冈县| 香港 | 务川| 五指山市| 灯塔市| 杭锦旗| 九寨沟县| 荣成市| 宣威市| 图木舒克市| 荆州市| 鹿泉市| 阳城县| 睢宁县| 景德镇市| 随州市| 晋中市| 谢通门县| 夏河县| 苏尼特右旗| 洛扎县| 保定市| 大邑县| 乌兰浩特市| 五华县|