ASP.NET整理:Cookie,Application,Session,頁面生命週期

一.設置Cookie2種方式

1.    Repsonse.Cookie[「名」] = ;web

2.    HttpCookie hcCookie = new HttpCookie(「名」,);瀏覽器

hcCookie.Expires = Date.Now.AddDays(1);這裏能夠增長月安全

Response.Cookies.Add(hcCookie);服務器

Cookie中取值:cookie

string str = Response.Cookies[「名」].Value;session

注意:less

1.Cookie若沒指定時間,則默認爲到瀏覽器關閉爲止,設爲MaxValue則表示永不過時.spa

2.另外Cookie中只能存字符串,即Response.Cookie[「Quantity」] = 15;是錯誤的,只能」15」.操作系統

二.如何接受URL中參數

Request.QueryString[「URL參數後變量名」];orm

Request.Form[「URL參數後名」]

C#中沒有相似於JAVA中的轉發功能,無法傳對象,要想傳對象只能放在session中,或者viewstate頁面狀態保持中

 

三.ASP.NET頁面的生命週期:

A.初始化

B.加載實例:PostBack--ViewState--<%@ Page .....%>//這個每一個頁面只能出現一次

C.服務器控件驗證

D.控件事件

E.Render渲染顯示

F.卸載

通常一些敏感類數據:用戶名、密碼、權限等存在session中,而用戶上一次登陸的時間存放在cookie

四.Session相關

得到sessionIdSession.SessionID

SessionID是保存在Cookies中的,而Cookies是可被禁用掉的

∴可採用:URL重寫技術,將SessionID附加到URL中;使用表單隱藏技術,服務器將SessionID以隱藏字段的方式添加到表單中。

1.Session語法:

Session[「名」] = ; //注意這裏沒有Value屬性,跟Cookie區別

2.獲取:

變量 = Session[「名」];

3.特徵:

session一旦過時,Server即刻清除Session對象,釋放所佔資源

4.屬性:

Timeout:設置超時時間,單位:分;

5.方法:

Clear():從會話狀態集合中清除全部鍵和值(清空值,內存中保留空間)

Abandon():結束Session,取消當前會話(安全退出功能),由於優先級較低,在當前頁面執行完成過之後才執行,這也是爲何「安全退出」按鈕點擊後頁面會跳轉一下。

f.Session在配置文件中的一些設置:

<system.web>

<sessionState timeout=」20」 cookieless=」true」 mode=」SQLServer」></sessionState>

</system.web>

6.Session中能夠存放對象:

User user = new User();

user.ID = 1;

userName = 「Tom」;

Session[「userInfo」] = user;

可根據session知否爲空來進行判斷--->用於訪問控制

if(Session[「userInfo」]==null)

{

Response.Redirect(「index.aspx」);

}

else

{

If(!Page.IsPostBack)

{

//...歡迎致辭等

}

 

讀取session中的對象:User user = Session[「userInfo」] as User;

五.Application相關

賦值:

Application[""] = ;

取值:

變量 = Application[""]; //Application中存儲的都是Object類型,取的時候需轉型

Global.asax文件:全局應用程序類

Application包含5個事件

Application_Start

Application_End

Application_Error

Session_Start

Session_End

使用Application的時候須要進行Lock()操做,eg:

統計人數功能,在Application_Start事件中:

Application.Lock();

Application["count"] = 0;

Application.Unlock();

Session_Start中實現自增:

Application.Lock();

Application["count"]= (int)Application["count"]+1; //需類型轉換;

Application.Unlock();

六.RequestServer屬性

瀏覽器類型:Request.Browser.Browser

瀏覽器版本:Request.Browser.Version

客戶端操做系統版本:Rquest.Browser.PlatForm

客戶端IP地址:Request.UserHostAddress

客戶端主機名:Request.UserHostName

服務器名稱:Server.MachineName

服務器根目錄:Server.MapPath

相關文章
相關標籤/搜索