ASP.NET—Cookie

什么是Cookie

  Cookie就是一个文本文件,它是客户端的一种状态保持机制 ,里面存储了一些少量的关于用户的信息,比如:用户名和密码、浏览过的商品编号等。它既可以存在浏览器的内存中,也可以存在用户电脑的硬盘上。如果不指定存储时长,Cookie就存在浏览器的内存中;指定了Cookie的存储时长,它就会存在用户电脑的硬盘上,等过了这个有效期限,它就会自动删除。

Cookie的基本操作

1. Cookie的创建
  Cookie的创建有两种方式:

//第一种创建方式:
Response.Cookies["cp1"].Value = "1";
//第二种创建方式:
HttpCookie httpCookie = new HttpCookie("cp1", "1");
httpCookie.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(httpCookie);

2. 指定Cookie的过期时间

//指定过期时间为3天
Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(3);

3. 删除Cookie
  只要将Cookie的有效期限改为一个过去的时间,Cookie就会被删除

//删除Cookie
Response.Cookies["cp1"].Expires = DateTime.Now.AddDays(-1);

4. Cookie的跨域
  Cookie的跨域就是指:默认在主域名创建的Cookie,访问子域名的时候,也会自动将Cookie加入到报文中;但是在子域名创建的Cookie,由子域名跳转到主域名却不会将Cookie加入到报文中。如果想实现后者的话,也可以用代码实现,只需要指定cookie的一个属性就可以了:

Response.Cookies["cp1"].Domain = "zhuyuming";

5. 指定Cookie的作用范围
  有时候我们想控制只有访问特定文件夹下的网页时,才会发送Cookie,那么就可以指定Cookie的Path属性。如果不指定,那么Cookie的作用范围是整个网站。

Response.Cookies["cp1"].Path = "/2019-2-13";
Cookie说明

1. Cookie的限制
  大多数浏览器允许存储的Cookie最大为4KB,所以只能用Cookie存储少量数据。
  大多数浏览器允许每个站点最多存20个Cookie,如果超出20个,新的Cookie将会替代旧Cookie
  有些浏览器限制所有站点的Cookie总数为300个
  为了解决浏览器对Cookie数量的限制,所以有了多值Cookie,如果没有多值Cookie,那么每个站点只能存20条数据。

//多值Cookie

//第一种创建方式
Response.Cookies["userInfo"]["userName"] = "zhangweijie";
Response.Cookies["userInfo"]["lastVisit"] = DateTime.Now.ToString();
Response.Cookies["userInfo"].Expires = DateTime.Now.AddDays(3);
//第一种接收方式
string userName = Request.Cookies["userInfo"]["userName"];

//多值Cookie第二种创建方式
HttpCookie cookie = new HttpCookie("userInfo");
cookie.Values["userName"] = "zhangweijie";
cookie.Values["lastVisit"] = DateTime.Now.ToString();
Response.Cookies.Add(cookie);
//多值Cookie第二种接收方式
HttpCookie httpCookie1 = Request.Cookies["userInfo"];
string userName = httpCookie1.Values["userName"];

2. Cookie的安全
  由于Cookie存在用户的电脑上,所以Cookie是不安全的,如果要在Cookie中存用户的登录密码等敏感信息时一定要加密。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值