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

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

        读取 Cookie 集合
 
    前面的示例假设您要读取名称已知的 Cookie。有时,您可能需要读取可供页面使用的所有 Cookie。要读取可供页面使用的所有 Cookie 的名称和值,您可以利用如下代码遍历 Request.Cookies 集合:
Code
注意:运行此代码时,您很可能会看到一个名为“ASP.NET_SessionId”的 Cookie,ASP.NET 用这个 Cookie 来保存您的会话的唯一标识符。这个会话 Cookie 不会永久保存到您的硬盘上。有关会话 Cookie 的详细信息,请参阅本文后面的 Cookie 和会话状态。
  前面的示例有一个限制:如果 Cookie 有子键,就会以一个单独的名称/值字符串来显示子键。Cookie 的 HasKeys(英文)属性可以告诉您该 Cookie 是否有子键。如果有子键,您可以在子键集合中向下钻取,获取各个子键的名称和值。
 
    如前文所述,您可以从 Cookie 属性 Values(英文)中获取有关子键的信息,该属性是类型 NameValueCollection 的集合。您可以根据索引值从 Values 集合中直接读取子键值。相应的子键值可以从 Values 集合的成员 AllKeys(英文)中得到,该成员将返回一个字符串集合。
 
    以下示例是对前一示例的修改。示例中使用 HasKeys 属性来测试子键,如果检测到子键,就从 Values 集合中获取子键:
Code
您也可以把子键作为 NameValueCollection 对象进行提取,如下所示:
Code
注意:请记住,我之所以调用 Server.HtmlEncode 方法,只是因为我要在页面上显示 Cookie 的值。如果您只是测试 Cookie 的值,就不必在使用前对其进行编码。
 
    修改和删除 Cookie
 
    有时,您可能需要修改某个 Cookie,更改其值或延长其有效期。(请记住,由于浏览器不会把有效期信息传递到服务器,所以您无法读取 Cookie 的过期日期。)
 
    当然,实际上您并不是直接更改 Cookie。尽管您可以从 Request.Cookies 集合中获取 Cookie 并对其进行操作,但 Cookie 本身仍然存在于用户硬盘上的某个地方。因此,修改某个 Cookie 实际上是指用新的值创建新的 Cookie,并把该 Cookie 发送到浏览器,覆盖客户机上旧的 Cookie。
 
    以下示例说明了如何更改用于储存站点访问次数的 Cookie 的值:
Code
或者:
Code


 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Asp.Net] 的这些文章也感兴趣:

利用ASP.NET 2.0客户端callbacks限制postbacks  ASP.NET中进行消息处理(MSMQ) 三
AjaxWorld Keynote: Ajax in the Balance  小心使用放在App_Code中类的静态成员
为按钮添加 确认 对话框  session和viewstate的比较
增加网站流量方法之ASP.NET弹出窗口技术  将上传图片打上防伪图片水印并写入数据库
asp.net打印  ASP.NET MVC Preview 5 演示Demo #5 实现MikePager数据分页和GridView控件
漫谈.NetPetShop和DuwamishADO.NET数据库编程(2)  开发 .NET 下的 FTP 客户端组件
10天学会ASP.net之第三天  C#编写的生成缩略图程序
ASP.NET2.0 SQLServer2005构建多层应用  ASP.net中页面事件的先后执行顺序
ASP.NET Web应用程序支持的三种部署方案  用DataReader实现分页
.NET中获取HTML页面并提取其中的超链接  向DataGrid控件中添加ComboBox控件