zoukankan      html  css  js  c++  java
  • asp.net中的cookie

    一.cookie导读,理解什么是cookie


    1.什么是cookie:cookie是一种能够让网站服务器把少量数据(4kb左右)存储到客户端的硬盘或内存。并且读可以取出来的一种技术。

    2.当你浏览某网站时,由web服务器放置于你硬盘上的一个非常小的文本文件,它可以记录你的用户id、浏览过的网页或者停留的时间等网站想要你保存的信息。当你再次通过浏览器访问该网站时,浏览器会自动将属于该网站的cookie发送到服务器去,服务器通过读取cookie,得知你的相关信息,就可以做出相应的动作。比如,显示欢迎你的小标题,不用填写帐号密码直接登录等。。
    3.不同的浏览器存储的cooks位置是也不一样的。cookie文件的信息是不安全的,所以cookie里面的数据最好加密。
    4.浏览器保存cookie数据有2中形式:浏览器的内存中,浏览器所在的电脑硬盘中。


     二.cookie的查看


    cookie在硬盘中的存在位置查看方法: 


    .cookie的代码解释


    1.将cookie写入浏览器端 

    HttpCookie cookie = new HttpCookie("id","234"); //创建cookie的实例。
    Response.Cookies.Add(cookie);//将创建的cookie文件输入到浏览器端

    explain:这里相当于在cookie文件中写入键值对为id:234,我们可以读取这个数据


    2.读出cookie中存放的数据

     HttpCookie cookie = new HttpCookie("id","234"); //创建cookie的实例。
    Response.Cookies.Add(cookie);//将创建的cookie文件输入到浏览器端
    Response.Write(Request.Cookies["id"].Value); //读取cookie文件中存储的值

     

    explain:页面写出的数据就是234,从这里我们就能看出cookie的不安全性。所以使用的时候最好不要存放重要信息,如果就想存放,可以对其加密,在写入cookie存储文件中。还有如果对其无限制的写入,会造成垃圾文件过多。所以我们可以给cookie文件加一个有效期。


    3.cookie文件的有效期设置

    HttpCookie cookie = new HttpCookie("id","234"); //创建cookie的实例。
                cookie.Expires = DateTime.Now.AddMonths(5);//设置cookie的过期时间,5分钟后过期,自动清除文件
                Response.Cookies.Add(cookie);//将创建的cookie文件输入到浏览器端
                Response.Write(Request.Cookies["id"].Value); //读取cookie文件中存储的值

    4.cookie文件的删除、销毁

    复制代码
                HttpCookie cookie = new HttpCookie("id","234"); //创建cookie的实例。
                cookie.Expires = DateTime.Now.AddMonths(5);//设置cookie的过期时间,5分钟后过期,自动清除文件
                Response.Cookies.Add(cookie);//将创建的cookie文件输入到浏览器端
                Response.Write(Request.Cookies["id"].Value); //读取cookie文件中存储的值
                cookie.Expires = DateTime.Now.AddMonths(-5); //cookie的销毁,给他设置一个多去了的时间,他就倍销毁了。
    复制代码

    四.一个cookie的小例子,记住我。(如果登录的时候选择记住我,下次无需登录直接跳转的内容页) 


    复制代码
    <body>
        <form id="form1" method="post" action="rembPage.aspx">
        <div>
            帐号: <input type="text" name="userName" /><br />
            密码 :<input type="password" name="pass" /><br />
            记住我: <input type="checkbox" value="rem" name="sele1" /><br />
            <input type="submit" value=" 登录 " /> 
        </div>
        </form>
    </body>
    复制代码
    复制代码
     protected void Page_Load(object sender, EventArgs e)
            {
                if (Request.Cookies["userName"] == null && Request.Cookies["passWord"] == null)  //判断师傅存在cookie,如果存在表示上次选择了记住我
                {
                    if (Request.Form["userName"] != null && Request.Form["pass"] != null)
                    {
                        String userName = Request.Form["userName"];
                        String userPassWord = Request.Form["pass"];
                        if (userName == "admin" && userPassWord == "123")
                        {
                            if (Request.Form["sele1"] != null)
                            {
                                HttpCookie cookieUserName = new HttpCookie("userName", userName);  //创建帐号的cookie实例
                                HttpCookie cookiePassWord = new HttpCookie("passWord", userPassWord);
                                cookieUserName.Expires = DateTime.Now.AddDays(2);   //设置帐号cookie的过期时间,当前时间算往后推两天
                                cookiePassWord.Expires = new DateTime(2012, 5, 27);   //设置密码cookie的过期时间,过期时间为2012年5月27日
                                Response.Cookies.Add(cookieUserName);  //将创建的cookieUserName文件输入到浏览器端
                                Response.Cookies.Add(cookiePassWord);
                                Response.Redirect("1.aspx"); //跳转到你想要的页面
                            }
                            else
                            {
                                Response.Redirect("1.aspx");//即便不记住密码也要跳转
                            }
                        }
    
                    }
                }
                else
                {
                    Response.Redirect("1.aspx");//如果记住密码,第二次登录将直接进入1.aspx页面
                }
            }
    复制代码

  • 相关阅读:
    LOJ DFS序
    牛客练习赛31 D神器大师泰兹瑞与威穆
    Codeforces Round #487 (Div. 2) C
    Manthan, Codefest 18 (rated, Div. 1 + Div. 2) C D
    [Windows Server 2003] 还原SQL Server数据库
    [Windows Server 2008] 查看PHP详细错误信息
    [Windows Server 2008] 安装网站伪静态
    网站Gzip压缩
    [Windows Server 2008] SQL Server 2008 数据库还原方法
    [Windows Server 2008] 安装Apache+PHP+MySQL
  • 原文地址:https://www.cnblogs.com/zhaodahai/p/6823865.html
Copyright © 2011-2022 走看看