网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.[视频]vs2005入门之起始页与创建.
.[视频]Visual Studio 2005入门之.
.最佳ASP.NET编程习惯.
.十天学会ASP.net之第七天.
.ASP.NET中Cookie编程的基础知识(.
.在Win 2003中配置ASP.net环境.
.[视频]Visual Studio 2005入门之.
.[视频]Visual Studio 2005入门之.
.Autodesk官方最新的.NET教程(四.
.ASP.NET中数据库的操作初步----D.
.ASP.NET讲座(5)-数据库的操作ADO.
.[视频]Visual Studio 2005入门之.
.[视频]Visual Studio 2005入门之.
.[视频]Visual Studio 2005入门之.
.[视频]vs2005入门之数据类型(日期.
.[视频]Visual Studio 2005入门之.
.[视频]vs2005入门之数据类型/数值.
.[视频]Visual Studio 2005入门之.
.ASP.NET讲座(2)-ASP.NET控件.
.ASP.NET中数据库的操作初步----连.

ASP.NET中Cookie编程的基础知识(5)

发表日期:2005-9-17


     读取 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)
上一篇:ASP.NET中Cookie编程的基础知识(4) 人气:11657
下一篇:ASP.NET中Cookie编程的基础知识(6) 人气:16474
浏览全部ASP.NET中Cookie编程的基础知识的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐