分享

Httpcookie的简单应用

 icecity1306 2014-09-18

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 + "次访问");

        }

    }

}

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多