1.简介
1.什么是cookie:cookie是一种能够让网站服务器把少量数据(4kb左右)存储到客户端的硬盘或内存。并且读可以取出来的一种技术。
2.当你浏览某网站时,由web服务器放置于你硬盘上的一个非常小的文本文件,它可以记录你的用户id、浏览过的网页或者停留的时间等网站想要你保存的信息。当你再次通过浏览器访问该网站时,浏览器会自动将属于该网站的cookie发送到服务器去,服务器通过读取cookie,得知你的相关信息,就可以做出相应的动作。比如,显示欢迎你的小标题,不用填写帐号密码直接登录等。。
3.不同的浏览器存储的cookie位置是也不一样的。cookie文件的信息是不安全的,所以cookie里面的数据最好加密。
4.浏览器保存cookie数据有2中形式:浏览器的内存中,浏览器所在的电脑硬盘中。
从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,且为你所专有,并只能由提供它的服务器来读取。保存的信息片断以“名/值”对(name-value
pairs)的形式储存,一个“名/值”对仅仅是一条命名的数据。一个网站只能取得它放在你的电脑中的信息,它无法从其它的Cookies文件中取得信息,也无法得到你的电脑上的其它任何东西。(摘自网络)
并非所有浏览器都支持。数据信息是以文本的形式保存在客户端计算机。
2.Cookie的基本用法
(1) 将Cookie写入浏览器:
1 HttpCookie makeCookie = new HttpCookie("myCookie");//括号里面写的是Cookie的名称
2
3 makeCookie.Value = this.TextBox1.Text;//这个是Cookie的值
4
5 Response.Cookies.Add(makeCookie);//添加cookie变量
(2)读取Cookie的值
1 HttpCookie readCookie = Request.Cookies【"myCookie"】;//读取的是使用Request返回的值
2 TextBox2.Text = readCookie.Value;
(3)设置cookie的有效期
1 HttpCookie cookie = new HttpCookie("name","Elaine"); //创建cookie的实例。
2 cookie.Expires = DateTime.Now.AddDays(5);//设置cookie的过期时间,5天后过期,自动清除文件
3 Response.Cookies.Add(cookie);//将创建的cookie文件输入到浏览器端
4 Response.Write(Request.Cookies【"name"】.Value); //读取cookie文件中存储的值
(4)删除Cookie,没有特定的方法,只需要让它的有效期失效就行了
1 cookie.Expires = DateTime.Now.AddMonths(-1); //cookie的销毁
(5)Cookie的其他属性
HttpCookie makecookie = new HttpCookie("myCookie");
指定Cookie的名称:makecookie.Name;
指定Cookie的值: makecookie.Value;
指定Cookie的路径:makecookie.Path;
(6)Cookie加密
?1Response.Cookies【"strPWD"】.Value = FormsAuthentication.HashPasswordForStoringInConfigFile(加密字符串, "md5");
3.cookie读写原理
Cookies集合是附属于Response对象及Request对象的数据集合,使用时需要在前面加上Response或Request。
用于给客户机发送Cookies的语法通常为:
当给不存在的Cookies集合设置时,就会在客户机创建,如果该Cookies己存在,则会被代替。由于Cookies是作为HTTP传输的头信息的一部分发给客户机的,所以向客户机发送Cookies的代码一般放在发送给浏览器的HTML文件的标记之前。
如果用户要读取Cookies,则必须使用Request对象的Cookies集合,其使用方法是:
需要注意的是,只有在服务器未被下载任何数据给浏览器前,浏览器才能与Server进行Cookies集合的数据交换,一旦浏览器开始接收Server所下载的数据,Cookies的数据交换则停止,为了避免错误,要在程序和前面加上response.Buffer=True。
4.怎么查看Cookie的位置
打开IE》Internet选项》常规》
5.代码示例
案例一:
下面来完成一个登陆实例:
总共有两个页面,一个登陆页面,一个主页;
页面效果:
提示:
首先在登陆页前台的HTML代码里面的head标记里面的Title添加ID=”pageTitle
还有需要在web.config中把改为以下结果:
?1234567
具体代码:
登陆页:
前台:
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CookieLogin.aspx.cs" Inherits="Cookie" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""
4
5
6
7