跨页面传值之Cookie
3.客户端再次访问某站点
浏览器将携带Cookie信息的指令,将获得的信息参与编译。
4.将含有Cookie信息参与编译的页面发回给浏览器
其中如果有相关的设置Cookie的指令。将再次通过浏览器,写入客户端
Cookie的限制
1.必须通过浏览器进行操作
如果浏览器禁用Cookie,则无法工作
信息只能是文本
信息大小限制:4KB(兼容性考虑)
安全问题不容忽视
使用Cookie存储的尽量是些无关痛痒的信息
如果要保存用户名和密码,将编码为密文形式
实现单值Cookie的设置
HttpCookie ck=new HttpCookie("animal");
ck.value="猫";
ck.expires=Date Time.Now.AddDays(1);
Response.Cookies.Add(ck); ______Response.Write("......");
Response.Redirect(".....");
Response.Cookies.....
1.声明创建(可同时赋值)
2.设置有效期(一个时间点)
如果不设置有效时间,关闭浏览器,Cookie就失效
如果设置的有效时间当下时间以前的,Cookies无效
3.发送写入Cookie指令给浏览器(Response)
实现单值Cookie信息读取
1.需要加一个判断,判断Cookie是否存在。当存在时,才进行读取。
判断:
If(Request.Cookies[animal]!=null)
{
mystr=Request.Cookies["animal"].values;
}
注意:Value必须加,不同于Request.QueryString["...."]
Request.Cookies["..."]是一个对象,不能对象和string变量不能赋值
实例:
C#:
protected void BtnCookieset_Click(object sender, EventArgs e) { HttpCookie ck = new HttpCookie("name"); //创建HttpCookie对象 ck.Value = "小王"; //设置cookie的名字 ck.Expires = DateTime.Now.AddSeconds(10); //为cookie设置失效时间 Response.Cookies.Add(ck); //添加cookie }
C#
protected void Page_Load(object sender, EventArgs e) { if (Request.Cookies["name"]!=null) //判断结果Cookie 有数据 { //获取cookie的value值 string read = Request.Cookies["name"].Value; //输出read Response.Write(read); } }
实现单值Cookie信息删除
1.删除Cookie值不同于清空变量值。
它存放的位置是客户端硬盘。
2.删除cookie的思路
将cookieName的邮箱期Expires设置为一个过期日期,在此写入硬盘
标准写法
Response.Cookies["name"].Expires=DateTime.MinValue;
protected void btnremoveCookie_Click(object sender, EventArgs e) { //删除cookie就是利用cookie的失效时间 Response.Cookies["name"].Expires = DateTime.MinValue; }