ASP.NET 实践:删除 Cookie

你不能直接删除用户计算机中的 Cookie。但是,你能够通过把 Cookie 的有效日期设置成一个已经过去的日期来指挥用户浏览器对 Cookie 进行删除。用户在下一次对设置在 Cookie 中的域或路径中的页面进行访问的时候,浏览器会检测并删除已经过期的 Cookies。

提示:调用 Cookies 集合的 Remove 方法可以在服务器端把 Cookie 从集合中删除,但是 Cookie 将不会被发送到客户端。因此,这个方法不会从客户端删除已经存在的 Cookie。

为 Cookie 指派一个已经过去的日期
  1. 检测 Cookie 是否存在,如果存在,创建一个拥有相同名称的新 Cookie。

  2. 把新 Cookie 的有效日期设置成一个已经过去的时间。

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

    如下代码实例说明了如何为 Cookie 设置一个已经过去的日期。

    if (Request.Cookies["UserSettings"] != null)
    {
        HttpCookie myCookie = new HttpCookie("UserSettings");
        myCookie.Expires = DateTime.Now.AddDays(-1d);
        Response.Cookies.Add(myCookie);
    }
    
编译代码

该实例需要:

  • 一个 ASP.NET Web 页面。

  • 先前被写入的 Cookie(名为 UserSettings),与[ASP.NET 实践:写入 Cookie]中所例示的一样。

健壮编程

因为安全原因,你只能够对被相同域中的页面所设置的 Cookies 进行读取。如果 Cookie 的 Path 属性已经被设置,那么这个 Cookie 同样只在路径中所指定的相同域的页面和子目录中可用。

在读取特定 Cookie 的值的时候,先测试该 Cookie 是否存在并且是否已经赋值,否则会发生一个 NullReferenceException 异常。

安全性

浏览器只能够把数据回发到最初创建 Cookie 的服务器中。但是,恶意用户能够对 Cookies 进行访问并且读取其中的内容。所以不要把机密信息存储到 Cookie 中,如用户名称或密码。而是存储一个能够用来在服务器上查寻机密信息的记号。另外,Cookies 还能够被篡改,所以 Cookie 中的任何数据都应该使用防止跨网站脚本攻击时的策略来进行测试。更多信息,请参考:[ASP.NET 实践:在 Web 应用程序防止反向脚本开发]。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值