asp.net中的cookie
阿新 • • 發佈:2017-05-08
再次 創建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