ASP.NET 实践:写入 Cookie

Cookies 提供了一种在 Web 应用程序中存储特定用户信息(如历史记录或用户偏好)的方式。Cookie 是连同请求和回应一起在 Web 服务器和客户端之间来回传送的少量文本。Web 应用程序能够在用户访问网站的时候读取 Cookie 中所包含的信息。

浏览器负责对客户端计算机中的 Cookies 进行管理。Cookies 是使用 HttpResponse 对象被发送到客户端的,该对象暴露了一个名为 Cookies 的属性集合。任何你想要在 Web 应用程序中发送到浏览器的 Cookies 都必须被添加到这个集合中。在你写入一个新 Cookie 的时候,你必须指定 NameValue 属性。每个 Cookie 都必须拥有一个唯一的名称,这样 Web 应用程序才能够在浏览器的未来请求中对它进行识别。

把 Cookie 写入到用户计算机中有两种方式。你既能够直接在 Cookies 集合中设置 Cookie 的属性,也能够创建一个新的 HttpCookie 对象实例并把它添加到 Cookies 集合中。你必须在 ASP.NET 页面被呈现到客户端之前创建 Cookies。例如,你可以在 Page_Load 事件处理器中写入一个 Cookie,但是不能够在 Page_Unload 事件处理器中写入 Cookie。更多关于页面生命周期的信息,请参考:[ASP.NET 页面生命周期概览]。

更多信息,请参考:[ASP.NET Cookies 概览]。

Cookies 集合中设置属性来写入 Cookie
  • 在你想要写入 Cookie 的 ASP.NET 页面中,在 Cookies 集合中指定 Cookie 的属性。

    如下代码实例说明了一个名为 UserSettings 的 Cookie,并为子键 Font 和 Color 设置了值。同时也把失效时间设置成了明天。

    Response.Cookies["UserSettings"]["Font"] = "Arial";
    Response.Cookies["UserSettings"]["Color"] = "Blue";
    Response.Cookies["UserSettings"].Expires = DateTime.Now.AddDays(1d);
    
创建 HttpCookie 对象的实例来写入 Cookie
  1. 创建 HttpCookie 类型的一个对象实例并为其指定名称。

  2. 指定 Cookie 子键中的值并设置 Cookie 的属性。

  3. 把这个 Cookie 添加到 Cookies 集合中。

    如下代码实例说明了一个名为 myCookie 的 HttpCookie 对象实例,用来展示一个名为 UserSettings 的 Cookie。

    HttpCookie myCookie = new HttpCookie("UserSettings");
    myCookie["Font"] = "Arial";
    myCookie["Color"] = "Blue";
    myCookie.Expires = DateTime.Now.AddDays(1d);
    Response.Cookies.Add(myCookie);
    
健壮编程

默认时,Cookies 在相同域中的所有页面中被共享,但是你能够通过设置它们的 Path 属性的方式把 Cookies 限制到一个特定的子目录。要允许 Cookie 能够被应用程序所有目录中的所有页面所访问,请在应用程序根目录中的页面中对它进行设置,并且不要设置 Path 属性。

如果你没有指定 Cookie 的有效期,那么这个 Cookie 将无法在客户计算机中被持续保持,并且会连同用户的会话状态一起失效。

Cookies 只能够存储 String 类型的值。你必须在存储到 Cookie 之前把任何非字符串的值转换成字符串。大部分数据类型通过调用 ToString 方法就能够实现。更多关于数据类型转换成字符串的信息,请参考相应类型的[ToString 方法]。

安全性

不要在 Cookie 中存储机密信息(如用户名称或密码)。更多关于 Cookie 安全性的信息请参考:[ASP.NET Cookies 概览]。

转载于:https://www.cnblogs.com/Laeb/archive/2007/01/13/619626.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值