ASP.NET中的cookie的应用,对应多个值的情况 2008-08-11 22:29

字号:    

设置Cookie

protected void Page_Load(object sender, EventArgs e)
    {
        //声明一个HttpCookie的引用
        HttpCookie cookie = null;
        //统计访问的次数
        int count = 0;
        //判断是页面加传
        if (!Page.IsPostBack)
        {
            //读取Session范围的"userInfo",因为我们存的是UserInfo类型的,所以我们可以直接转换成这个类型的
            UserInfo userInfo = Session["userInfo"] as UserInfo;
            if (userInfo == null)
            {
                Response.Redirect("Login.aspx");
            }
            else if (userInfo.UserName != "jrain" || userInfo.PassWord != "1234")
            {
                Response.Redirect("Login.aspx");
            }
            else
            {
                //从客户端读取名为"Login"的cookie,
                 cookie = Request.Cookies["Login"];
                //如果不存在的话,也就是第一次写这个cookie
                 if (cookie == null)
                 {
                     //如果客户端没有这个cookie,我们要先实例化这个名为Login的cookie,
                     cookie = new HttpCookie("Login");
                     //访问次数加加
                     count++;
                    
                     //注意Cookie中只能添加string类型的值

                     //设置cookie的值,当有多个值的时候,我们用cookie.Values["loginName"]的方式
                     cookie.Values["loginName"] = userInfo.UserName;
                     cookie.Values["dateTime"] = DateTime.Now.ToString();
                     cookie.Values["count"] = count.ToString();
                    
                     /*设置cookie的过期时间,注意,
                     这里要想把数据保存到硬盘上,一定要设置cookie的过期时间,否则,只会存放在内存中.
                     Expires 属性,这个属性设置此Cookie 的过期日期和时间。如果没有设置 Cookie 的有效期(默认设置),
                     也可以创建 Cookie,但它不会保存到用户的硬盘上,而是会成为用户会话信息的一部分,
                     关闭浏览器或会话超时这个Cookie即会消失,这种Cookie称作非永久性的 Cookie。
                     存放SessionID的Cookie就是这样的一种Cookie,它不存放在硬盘上,只存在内存之中。 */
                     //cookie.Expires的值为DateTime的枚举
                     cookie.Expires = DateTime.Now.AddDays(30);
                     //写cookie到客户端
                     Response.Cookies.Add(cookie);
                 }
                 else   //当客户端有当前查找的cookie时
                 {
                     //读取访问次数
                     count =int.Parse(cookie.Values["count"].ToString());
                     //次数加加
                     count++;
                     //读取登录名
                     cookie.Values["loginName"] = userInfo.UserName;
                     //读取登录时间
                     cookie.Values["dateTime"] = DateTime.Now.ToString();
                     cookie.Values["count"] = count.ToString();
                     cookie.Expires = DateTime.Now.AddDays(30);
                     //更新cookie集合中现有的cookie值
                     Response.Cookies.Set(cookie);

                 }
                

                Response.Write(userInfo.UserName + "欢迎您");
            }

            this.lblLeaveTime.Text = DateTime.Now.ToString();
        }

    }

 

//获取客户名为"Login"的cookie的值
        if (Request.Cookies["Login"] != null)
        {
            //对应多个值的情况
            string loginName = Request.Cookies["Login"]["LoginName"].ToString();
            if (loginName != null)
            {
                Response.Write("用户名" + loginName);

            }

            string time = Request.Cookies["Login"]["dateTime"].ToString();
            if (time != null)
            {
                Response.Write("上传时间" + time);
            }

            string count = Request.Cookies["Login"]["count"].ToString();
            if (count != null)
            {
                Response.Write(" 访问次数" + count);
            }
        }

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
网易公司版权所有 ©1997-2009