在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
程序中需要用到Cookie,之前沒有接觸過,但耐心看完網上的尋找的資料后,終於讓程序完成了。 建立和得到客戶端Cookie的代碼如下:
///<summary>
///得到Cookie ///</summary> void GetClientCookike() { //判斷客戶端是否有Cookie if (Request.Browser.Cookies == true) { //判斷是否存在指定的Cookie,不存在時創建Cookie if (Request.Cookies["ClientSign"] == null) { HttpCookie hcCookie = new HttpCookie("ClientSign"); //設置Cookie的有效時間(此處設為最大時間) hcCookie.Expires = DateTime.MaxValue; string sGuid = DateTime.Now.ToString("yyyyMMddHHmmssffffff"); //設置Cookie的值 hcCookie.Value = sGuid; //將Cookie到客戶端Cookie集合中 Response.Cookies.Add(hcCookie); } else { //得到客戶端Cookie string sRequest = Request.Cookies["ClientSign"].Value; Response.Write("Cookie Is " + sRequest + "<br>"); } } } 參考的網上資料為: 傳遞cookies .NET System.Web空間名稱包含三個類,你可以使用它們來處理用戶端的Cookies: HttpResponse和HttpRequest物件的Cookies屬性將返回一個 HttpCookieCollection物件,它包含著,將單獨的cookies添加到集合(collection)中,以及從集合 (collection)獲得一個單獨的cookies。 HttpCookie類 雖然這些還不是一個最詳盡的列表,但它提供了處理cookies所需要的東西。對於這些屬性的使用,以下VB.NET範例給予最好的理解:
Dim testCookie As New HttpCookie("LastVisited")
這一代碼段建立了一個名為LastVisited的新的cookie,並賦予當前日期和時間的值。同樣的,cookie終止期限設置為一個星期,相關的範圍為populated。一旦建立物件,通過Response.Cookies物件的Add方法就可以將物件添加到用戶端的cookies集合。HttpCookie構造函數中的方法有兩種:
testCookie.Value = DateTime.Now.ToString testCookie.Expires = DateTime.Now.AddDays(7) testCookie.Domain = "builder.com" Response.Cookies.Add(testCookie)
HttpCookie objectName = New HttpCookie("cookieName")
HttpCookie objectName = New HttpCookie("cookieName", "cookieValue") 同樣,Response物件包含一個SetCookie方法,這一方法可以接受一個HttpCookie物件。 我的cookie在哪里?
Request.Cookies("LastVisitied").Value
除此之外,可以通過一個HttpCookieCollection物件訪問cookies的完整列表。這就使得cookie列表可以用一個for迴圈來訪問。以下C#代碼說明了這樣的例子:
HttpCookieCollection cookies;
cookie檔存放在用戶端機器,所以你的用戶可以任意刪除或更改。此外,用戶還可以使cookies無效化。基於此原因,請記住不要依賴cookie資料。你應該將重要的資訊保存在伺服器──特別是一個資料庫中。HttpCookie oneCookie; cookies = Request.Cookies; string[] cookieArray = cookies.AllKeys; for (int i=0; I < cookieArray.Length; i++) { oneCookie = cookies[cookieArray[i]]; Response.Write(oneCookie.Name + " - " + oneCookie.Value); } 在一個cookie中存儲關鍵資訊被認為是一種低級的程式設計,因為這些資訊很容易被洩露,原因是這些資訊位於客戶機器的一個檔中。在這一點,一種方法就是使用SSL,這是一種可以避免敏感資訊的更好方法。 我可以使用cookies嗎?
If Request.Browser.Cookies = True Then
可以聯合代碼來使用cookie值。以下C#代碼段對cookie支持進行了測試,並相應地將結果顯示在一個文本框:' 使用cookies Else '沒有cookie支持 End If
if (Request.Browser.Cookies == true)
你可以將這一代碼段添加到ASP.NET頁中的Page_Load事件。
{ if (Request.Cookies["LastVisited1"] == null) { HttpCookie newCookie = new HttpCookie("LastVisited1",DateTime.Now.ToString()); newCookie.Expires = DateTime.Now.AddYears(1); Response.Cookies.Add(newCookie); this.txtName.Text = "Is this your first time?"; } else { this.txtName.Text = "We haven't seen you since " + Request.Cookies["LastVisited1"].Value; } } 保存資料的另一方式
Cookie同Session的關係 |
请发表评论