cookie是用来保存客户资料的好方法,与同样可以用来保存客户资料的 session不同的是,session是把资料保存在服务器端,而cookie是把资料保存在客户端,我们平常接触的最多的cookie应用应该就是论坛的信息保存了,当大家在登陆一个自己喜欢的论坛的时候,通常都会有类似于“是否保存您的登陆信息”这样的选择,如果选了这个,那下次再登陆这个论坛的时候,就不用费力填写登陆表单,而是可以直接就登陆。 在asp.net中,使用cookie的过程大致如下:建立一个Httpcookie的实例,然后给它赋值,最后将这个保存了资料的实例加入到 HttpResponse的cookies集合中,这样就完成了cookie的前期设置,要使用cookie的时候,需要从HttpRequest的 cookies集合中取出需要的cookie,然后将它赋给一个Httpcookie的实例,然后使用它……总之具体的过程就是:生产,保存,使用(果然很麻烦啊)下面分过程来说好了。 生产: //创建一个Httpcookie的实例 HttpCookie co=new HttpCookie("gundam"); //往实例中添加资料,其中第一个string是键值,起标示作用,就像仓库里放了一堆箱子,每个箱子都有一个自己的编号,第二个string是相对应的值,就好比是箱子里存放的东西 co.Values.Add("GP-01_fb ","《机动战士高达0083-星屑的回忆》初登场"); co.Values.Add("sazabi","《机动战士高达-夏亚的反击》初登场"); 保存: //Expires属性用来设置cookie的生命时间,就是设定这个cookie可以保持多久,大家在论坛里可以看到,登陆的时候选择保存资料有很多选项,比如“保存一个月”、“保存一年”等。用到了DateTime和TimeSpan来组合产生一个时间段,关于这两个的详细信息,可以查阅.NET Framewokr SDK 文档 DateTime dt=DateTime.Now; TimeSpan ts=new TimeSpan(0,0,2,0); co.Expires=dt.Add(ts); //将实例加入到HttpResponse的cookies集合中,以便以后使用 Response.AppendCookie(co); 使用: //下面是一个比较常用的使用cookie的方法,先检查是否存在cookie,若是有,就把值取出来,否则就…… if(Request.Cookies["gundam"]==null) { lab.Text="none"; } else { // 像这样来获得保存的cookie,并用以前设置的键来获得需要的值 HttpCookie co2=Request.Cookies["gundam"]; lab.Text=co2.Values["sazabi"].ToString(); } asp.net中httpcookie 的使用和简单计数器 HttpCookie cookie = new HttpCookie("Info");//定义cookie对象以及名为Info的项 DateTime dt = DateTime.Now;//定义时间对象 TimeSpan ts=new TimeSpan(1,0,0,0);//cookie有效作用时间,具体查msdn cookie.Expires = dt.Add(ts);//添加作用时间 cookie.Values.Add("user","cxbkkk");//增加属性 cookie.Values.Add("userid","1203"); Response.AppendCookie(cookie);//确定写入cookie中 读取cookie if(Request.Cookies["Info"]!=null) { string temp=Convert.ToString(Request.Cookies["Info"].Values["user"])+" "+Convert.ToString(Request.Cookies["Info"].Values["userid"]); //读全部就用Request.Cookies["Info"].Value) if(temp=="") { Response.Write("空"); } else Response.Write(temp); } else { Response.Write("error"); } 修改cookie Response.Cookies["Info"]["user"] = "2"; Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1); 删除cookie下的属性 HttpCookie acookie=Request.Cookies["Info"]; acookie.Values.Remove("userid"); acookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(acookie); 删除所有cookie,就是设置过期时间为现在就行了 int limit=Request.Cookies.Count - 1; for(int i=0;i<limit;i++) { acookie = Request.Cookies(i) acookie.Expires = DateTime.Now.AddDays(-1) Response.Cookies.Add(acookie) } 计数器 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net; public partial class _Default : System.Web.UI.Page { int count = 0; protected void Page_Load(object sender, EventArgs e) { HttpCookie cookies = Request.Cookies.Get("count");
HttpCookie myCookie = null; if (cookies != null) { if (cookies.Name.Equals("count")) { myCookie = cookies;
} } if (myCookie != null) {
count =Convert.ToInt32(myCookie.Value); count++; myCookie.Value = count.ToString(); DateTime dts = DateTime.Now; TimeSpan tss = new TimeSpan(1, 0, 0, 0); myCookie.Expires = dts.Add(tss); Response.AppendCookie(myCookie); Response.Write("您这是第" + count + "次访问"); } else { myCookie = new HttpCookie("count", "1"); DateTime dts = DateTime.Now; TimeSpan tss = new TimeSpan(1, 0, 0, 0); myCookie.Expires = dts.Add(tss); // cookie.Expires = DateTime.MaxValue; Response.AppendCookie(myCookie); Response.Write("您这是第" + myCookie.Value + "次访问"); } } }
|
|
来自: icecity1306 > 《开发资料》