如何:读取 Cookie
更新:2007 年 11 月
Cookie 提供了一种在 Web 应用程序中存储用户特定信息(如历史记录或用户首选项)的方法。Cookie 是一小段文本信息,伴随着请求和响应在 Web 服务器和客户端之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。
浏览器负责管理用户系统上的 Cookie。Cookie 随页请求被发送至服务器,并且可作为 HttpRequest 对象(此对象公开 Cookies 集合)的一部分进行访问。只能读取当前域或路径中的页已经创建的 Cookie。
过程
读取 Cookie
使用 Cookie 名作为键从 Cookies 集合中读取字符串。
下面的示例读取名为 UserSettings 的 Cookie,然后读取名为 Font 的子键的值。
If (Request.Cookies("UserSettings") IsNot Nothing) Then Dim userSettings As String If (Request.Cookies("UserSettings")("Font") IsNot Nothing) Then userSettings = Request.Cookies("UserSettings")("Font") End If End If
if (Request.Cookies["UserSettings"] != null) { string userSettings; if (Request.Cookies["UserSettings"]["Font"] != null) { userSettings = Request.Cookies["UserSettings"]["Font"]; } }
编译代码
此示例需要:
一个 ASP.NET 网页。
一个先前编写的名为 UserSettings 的 Cookie,如主题如何:编写 Cookie 中所述。
可靠编程
出于安全原因,您只能读取属于同一域的页所设置的 Cookie。如果已设置 Cookie 的 Path 属性,则只有该域路径中的页和子文件夹能够使用该 Cookie。
在读取特定 Cookie 值时,请测试该 Cookie 是否存在以及它是否具有值,否则将发生异常。
Cookie 中的所有值都作为 String 类型存储,因此若要将 Cookie 值作为其他数据类型使用,必须对值进行相应地转换。
安全性
浏览器只能将数据发送回最初创建该 Cookie 的服务器。但是,怀有恶意的用户可以访问 Cookie 并读取其中的内容。不要在 Cookie 中存储敏感信息(如用户名或密码)。而应该存储可用来在服务器上查找敏感信息的标记。此外,Cookie 能够被篡改,因此应采取与防止跨站点脚本攻击相同的措施来处理 Cookie 中的任何数据。有关更多信息,请参见脚本侵入概述。