1. 程式人生 > >asp.net中的cookie

asp.net中的cookie

再次 創建cookie bpa form void 並且 ima 顯示 red

一.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頁面
            }
        }
技術分享

asp.net中的cookie