Net cookie 添加/修改/删除

Net cookie

概述:Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。Cookie 包含每次用户访问站点时 Web 应用程序都可以读取的信息。

例如,如果在用户请求站点中的页面时应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie,用户的浏览器在获得页面的同时还获得了该 Cookie,并将它存储在用户硬盘上的某个文件夹中。

以后,如果该用户再次请求您站点中的页面,当该用户输入 URL 时,浏览器便会在本地硬盘上查找与该 URL 关联的 Cookie。如果该 Cookie 存在,浏览器便将该 Cookie 与页请求一起发送到您的站点。然后,应用程序便可以确定该用户上次访问站点的日期和时间。您可以使用这些信息向用户显示一条消息,也可以检查到期日期。

限制cookie的域范围(出于安全考虑,只能跨子域)

Cookie只允许在主域多个子域间共享,通过Domain属性设置。

Cookie中的3个键,name,path,domain中,只要有任何1个键值不同,就会产生同名的Cookie。所以对指定cookie进行修改、删除的时候要注意保证cookie是同一个。

①:添加cookie

HttpCookie cookie = new HttpCookie("Extension");

/*默认情况下,Cookie 与特定域关联。

 *用 Domain 属性创建可在多个子域间共享的 Cookie

 *随后 Cookie 将可用于主域ispeak.cn,也可用于d.ispeak.cnt.ispeak.cn

 * */

cookie.Domain = "ispeak.cn";

cookie["roomid"] = "1";

DateTime date = DateTime.Now.AddDays(3);//设定过期时间为3

/*只有服务端返回cookie时候给制定过期时间,

 *服务器在获取客户端的cookie的时候是获取不到其过期时间的,

 *所以如果想在服务端获取cookie的过期时间,把过期时间作为键传过期是个办法

 * */

cookie["date"] = date.ToString();

cookie.Expires = date;

Response.Cookies.Add(cookie);

②:修改cookie值,(如果只是想改上面cookie的一个键值,那么就必须要cookie4个键值相同,浏览器才会覆盖旧的cookie

一个网站的Cookie里面可以具备有2个或更多个相同名字的键即:Cookie中的3个键,name,path,domain中,只要有任何1个键值不同,就会产生同名的Cookie

HttpCookie cok = Request.Cookies["Extension"];

if (cok != null)

{string roomid = cok["roomid"].ToString();

string date = cok["date"].ToString();//过期时间

cok.Domain = "ispeak.cn";

cok.Expires = Convert.ToDateTime(date);

cok.Values.Set("roomid""0");//修改多值cookie的一个子键值

Response.AppendCookie(cok);}

:删除cookie

ASP.NET中不能直接删除用户计算机中的 Cookie。但是,可以通过将 Cookie 的到期日期设置为过去的日期,让用户的浏览器来删除Cookie。当用户下一次向设置该 Cookie 的域或路径内的页发出请求时,浏览器将确定该 Cookie 已到期并将其移除。调用 Cookies集合的 Remove方法可从服务器端的集合中删除Cookie,使 Cookie 不会被发送至客户端。但是,如果客户端已存在 Cookie,则向 Cookie 分配已过去的到期日期

HttpCookie cok = Request.Cookies["Extension"];

if (cok != null)

{

    cok.Expires = DateTime.Now.AddDays(-1);

    cok.Domain = "ispeak.cn";

    Response.Cookies.Add(cok);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值