1.Response對象
2.Request對象
3.ViewState對象
4.Sever對象
5.Cookies對象
6.Session對象
7.Appliceation對象
Cookie:是一種網站服務器往客戶端內存或硬盤保存少量數據(4kb左右)的一種技術。利用此可以作為驗證用戶登陸的一種手段以及保存用戶瀏覽記錄等等。
Cookie一般歷程:
1.用戶請求網站頁面,網站服務端往客戶端添加特定的Cookie信息
2. 當用戶再次請求時瀏覽器默認把Cookie封裝到Http報文發送會服務端,服務端通過解析Cookie獲得特定信息
3.過期時間到Cookie對象結束。
注:
Cokies是值是以鍵值對的形式保存的(可以理解為一個數組)
對象Request和Response都提供一個Cookies集合。利用Request獲取Cookies對象利用Response設置Cookies對象
創建Cookies對象
HttpCookie cookieModel=new HttpCookie(); //創建一個Cookies對象
cookieModel.name="text"; //設置Cookies名稱
cookiesModel.Values.add("name","wjh"); //添加要存儲的信息,以鍵值對的形式存儲 values:在單個Cookies對象中包含的健值對集合 value:獲取或設置單個Cookies值
cookiesModel.Values.add("age","50");
cookiesModel.Expires=new date.new.Add(1); //設置過期時間為一天
Response.Cookies.Add(cookiesModel); //添加Cookies到響應流
獲取客戶端返回Cookies
HttpCookies RequestCookies=Request.Cookies["text"];
var name=RequestCookies.values["name"].tostring(); //如為單個直接 .value
修改或刪除Cookies
由於瀏覽器不會把Cookies過期時間傳遞回來,而且無法刪除客戶端的文件。所以無論是修改或者刪除一個Cookies我們都是創建一個新的cookies去覆蓋原有的Cookies以達到修改或刪除的效果。
因為不能直接刪除客戶端的文件,所以刪除Cookies時我們可以創建一個過期的Cookies對象進行覆蓋。
cookies.Expires=new date.Now.add(-1); //過期時間
********************************************************************************************************************
Session: 是一種把用戶數據存儲到服務器端的技術,相當於一次會話。系統會給每個登錄用戶分配一個獨立的Session空間。常用於保存與客戶端的通宵狀態。
原理:
1.asp.net_SessionId:客戶端的唯一標識,當用戶第一次請求時系統會自動分配一個SessionId。SessionId返回后通常會被存儲到內存Cookies中,用戶再次請求改網站是會把Cookies發送回去。系統就根據其中的asp.net_sessionId查找到對應的信息。(但瀏覽器關閉時其內存中的Cookies會注銷,如再次打開請求SessionId為空系統會認為是新的一次會話而重新分配空間。而之前的空間則會到了過期時間后自動回收到Session池)
2.因為創建Session比較消耗資源,所以使用了池技術。一次會話完成后Session對象會回到池等待新的會話。
3.當Webconfig禁用了Cookies,那么SessionId會通過地址欄傳遞。Request.SessionID可以獲取到。如果是瀏覽器禁用了Cookies那么每次請求的都是新的會話。
設置Session的值
Session["name"]=obj
獲取Session的值
obj obj=(obj)Session["name"];
Session的屬性:
session.count:獲取會話狀態下Session的個數
session.TimeOut:session的生命周期
session.SessionId:唯一標識符
方法:
session.Abandon();//取消當前會話
session.Clear();//清空當前會話Session對象里的鍵值對
session.Add();//向當前會話添加一個新項
session.CopyTo();//把當前會話添加到一維數組里
session.Remove/session.RemoveAll/session.RemoveAt
*********************************************************************************************************************
Appliceation對象:存儲於服務端的網站全局變量。可以被全部用戶使用
Appliceation對象是HttpAppliceationState類的一個實例。HttpAppliceation類是由用戶在global.asax文件中定義的應用程序基類。
屬性:
.AllKeys:獲取HttpAppliceationState集合中的訪問鍵。
.Count:獲取HttpAppliceationState集合中的對象數
注:在操作Appliceation對象時要上鎖防止多個用戶同時修改同一值。上鎖:Lock 解鎖:UnLock
賦值:Appliceation["userCount"]=123;取值: var v=Appliceation["userCount"];