什么是Cookies?Cookies是數據包,可以讓網頁具有記憶功能,在某臺電腦上記憶一定的信息。Cookies的工作原理是,第一次由服務器端寫入到客戶端的系統中。以后每次訪問這個網頁,都是先由客戶端將Cookies發送到服務器端,再由服務器端進行判斷,然后再產生HTML代碼返回給客戶端,這是一個很重要的原理。關于服務器端和客戶端的概念,請點擊我寫的這篇:什么是服務器端和客戶端,舉了2個實例。
Cookies在ASP中的最常用的方法,
1.如何寫入Cookies?
Response.Cookies("字段名")=變量或字符串,例如:
Response.Cookies("name2")="Dingdang"
2.如何設置Cookies時間?
Response.Cookies("字段名").expires=時間函數+N,例如:
Response.Cookies("name2").expires=date+1,表示Cookies保存1天,再比如:
Response.Cookies("name2").expires=Hour+8,表示Cookies保存8小時。
3.在以往的ASP教程中,很少有介紹Cookies退出的方法。在“退出”這個ASP頁中可以這樣寫:
Response.Cookies("字段名")=""
之后,在客戶端的瀏覽器就清除了Cookies,并且Cookies文件會消失。注意有多少個字段,就要寫多少句來清除。
4.如何讀取Cookies?
變量名=Request.Cookies("字段名"),例如:
name2=Request.Cookies("name2")
如果網頁中寫入這句,則會顯示“Dingdang”。
也可以這樣直接讀取Cookies,
Cookies是屬于Session對象的一種。但有不同,Cookies不會占服務器資源;而“Session”則會占用服務器資源。所以,盡量不要使用Session,而使用Cookies。
ASP.NET登錄狀態保持 并 設置IE cookie
寫入Cookie
//第一次登錄的時候,點擊登錄按鈕事件下寫
HttpCookie cookie = new HttpCookie("userName",user.UserName);
cookie.Expires = DateTime.Today.AddDays(300); //設置過期時間,
Response.AppendCookie(cookie);
Response.Redirect("index.aspx");
//在你的目標頁的Load事件下寫
if (!IsPostBack)//判斷是否回傳
{
if (Request.Browser.Cookies == true)
{
if (Request.Cookies["userName"] == null)
{
Response.Redirect("login.aspx");//跳轉到登錄頁面
}
}
}
如果沒有效果請設置IE
在IE里按菜單“工具->Internet選項”,彈出“Internet選項”設置窗體,選擇“隱私”頁,點“高級”按鈕,彈出“高級隱私策略設置”窗體,把“覆蓋自動Cookie處理”前的鉤選上,第一方、第三方都選擇“接受”,把“總是允許會話Cookie”鉤上即可
根據SessionID設置cookie
public static String GetCookie(String cookeName){
try{
return System.Web.HttpContext.Current.Request.Cookies[cookeName].Value;
}catch{
String cookeValue = System.Web.HttpContext.Current.Session.SessionID.Trim();
System.Web.HttpContext.Current.Response.Cookies.Add(new System.Web.HttpCookie(cookeName,cookeValue));
}
return System.Web.HttpContext.Current.Request.Cookies[cookeName].Value;
}