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

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

ASP.NET中Cookie編程的基礎知識(5)

2019-11-18 19:11:09
字體:
來源:轉載
供稿:網友
     讀取 Cookie 集合
  
    前面的示例假設您要讀取名稱已知的 Cookie。有時,您可能需要讀取可供頁面使用的所有 Cookie。要讀取可供頁面使用的所有 Cookie 的名稱和值,您可以利用如下代碼遍歷 Request.Cookies 集合:
  
  Dim i As Integer
  Dim output As String = ""
  Dim aCookie As HttpCookie
  For i = 0 to Request.Cookies.Count - 1
  aCookie = Request.Cookies(i)
  output &= "Cookie 名稱 = " & Server.HtmlEncode(aCookie.Name) & "<br>"
  output &= "Cookie 值 = " & Server.HtmlEncode(aCookie.Value) & _
  & "<br><br>"
  Next
  Label1.Text = output
  
    注意:運行此代碼時,您很可能會看到一個名為“asp.net_sessionId”的Cookie,ASP.NET 用這個 Cookie 來保存您的會話的唯一標識符。這個會話 Cookie 不會永久保存到您的硬盤上。有關會話 Cookie 的詳細信息,請參閱本文后面的 Cookie 和會話狀態。
  前面的示例有一個限制:如果 Cookie 有子鍵,就會以一個單獨的名稱/值字符串來顯示子鍵。Cookie 的 HasKeys(英文)屬性可以告訴您該 Cookie 是否有子鍵。如果有子鍵,您可以在子鍵集合中向下鉆取,獲取各個子鍵的名稱和值。
  
    如前文所述,您可以從 Cookie 屬性 Values(英文)中獲取有關子鍵的信息,該屬性是類型 NameValueCollection 的集合。您可以根據索引值從 Values 集合中直接讀取子鍵值。相應的子鍵值可以從 Values 集合的成員 AllKeys(英文)中得到,該成員將返回一個字符串集合。
  
    以下示例是對前一示例的修改。示例中使用 HasKeys 屬性來測試子鍵,如果檢測到子鍵,就從 Values 集合中獲取子鍵:
  
  Dim i As Integer
  Dim j As Integer
  Dim output As String = ""
  Dim aCookie As HttpCookie
  Dim subkeyName As String
  Dim subkeyValue As String
  For i = 0 To Request.Cookies.Count - 1
  aCookie = Request.Cookies(i)
  output &= "名稱 = " & aCookie.Name & "<br>"
  If aCookie.HasKeys Then
  For j = 0 To aCookie.Values.Count - 1
  subkeyName = Server.HtmlEncode(aCookie.Values.AllKeys(j))
  subkeyValue = Server.HtmlEncode(aCookie.Values(j))
  output &= "子鍵名稱 = " & subkeyName & "<br>"
  output &= "子鍵值 = " & subkeyValue & "<br><br>"
  Next
  Else
  output &= "值 = " & Server.HtmlEncode(aCookie.Value) & "<br><br>"
  End If
  Next
  Label1.Text = output
  
    您也可以把子鍵作為 NameValueCollection 對象進行提取,如下所示:
  
  If aCookie.HasKeys Then
  Dim CookieValues As _
  System.Collections.Specialized.NameValueCollection = aCookie.Values
  Dim CookieValueNames() As String = CookieValues.AllKeys
  For j = 0 To CookieValues.Count – 1
  subkeyName = Server.HtmlEncode(CookieValueNames(j))
  subkeyValue = Server.HtmlEncode(CookieValues(j))
  output &= "子鍵名稱 = " & subkeyName & "<br>"
  output &= "子鍵值 = " & subkeyValue & "<br><br>"
  Next
  Else
  output &= "值 = " & aCookie.Value & "<br><br>"
  End If
  
    注意:請記住,我之所以調用 Server.HtmlEncode 方法,只是因為我要在頁面上顯示 Cookie 的值。如果您只是測試 Cookie 的值,就不必在使用前對其進行編碼。
  
    修改和刪除 Cookie
  
    有時,您可能需要修改某個 Cookie,更改其值或延長其有效期。(請記住,由于瀏覽器不會把有效期信息傳遞到服務器,所以您無法讀取 Cookie 的過期日期。)
  
    當然,實際上您并不是直接更改 Cookie。盡管您可以從 Request.Cookies 集合中獲取 Cookie 并對其進行操作,但 Cookie 本身仍然存在于用戶硬盤上的某個地方。因此,修改某個 Cookie 實際上是指用新的值創建新的 Cookie,并把該 Cookie 發送到瀏覽器,覆蓋客戶機上舊的 Cookie。
  
    以下示例說明了如何更改用于儲存站點訪問次數的 Cookie 的值:
  
  Dim counter As Integer
  If Request.Cookies("counter") Is Nothing Then
  counter = 0
  Else
  counter = CInt(Request.Cookies("counter").Value)
  End If
  counter += 1
  Response.Cookies("counter").Value = counter.ToString
  Response.Cookies("counter").Expires = DateTime.Now.AddDays(1)
  
    或者:
  
  Dim ctrCookie As HttpCookie
  Dim counter As Integer
  If Request.Cookies("counter") Is Nothing Then
  ctrCookie = New HttpCookie("counter")
  Else
  ctrCookie = Request.Cookies("counter")
  End If
  counter = CInt(ctrCookie.Value) + 1
  ctrCookie.Value = counter.ToString
  ctrCookie.Expires = DateTime.Now.AddDays(1)
  Response.Cookies.Add(ctrCookie)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新昌县| 宜君县| 贵德县| 芦溪县| 同仁县| 金堂县| 新闻| 砀山县| 桦甸市| 香河县| 浙江省| 诏安县| 南召县| 建昌县| 贡山| 闽侯县| 沙田区| 梧州市| 大田县| 夏邑县| 昌吉市| 高雄县| 盐津县| 全州县| 农安县| 邵阳市| 靖江市| 宝应县| 宁河县| 巴林左旗| 九江县| 璧山县| 遂昌县| 满城县| 石渠县| 冕宁县| 尚义县| 哈密市| 涿鹿县| 盱眙县| 色达县|