For investors
股價:
5.36 美元 %For investors
股價:
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
1.Session對象的基本概念
Session英文意思是:“會話、開會”,這是很基礎(chǔ)的了解啦。使用Session對象可以存儲不同用戶個人會話所需的信息。當(dāng)用戶在Web應(yīng)用程序的程序之間跳轉(zhuǎn)時,存儲在Session的變量不會被清除,而始終存在,只要客戶瀏覽器接入一個Web服務(wù)器,在服務(wù)器中就會創(chuàng)建一個具有該用戶專用ID號的Session對象,在其中可以存放上線用戶的私有變量信息,只要用戶不下線,自己的Session變量存在;一旦用戶下線,Session變量會消失。如果Web服務(wù)器停止了,Session變量也會消失。
2.Session對象的工作機(jī)制
ASP.NET中可以通過向客戶程序發(fā)送唯一的Cookie來管理服務(wù)器上的Session對象。如果客戶端瀏覽器關(guān)閉Cookie支持,則服務(wù)器端的Session功能也會失效。正是使用這種Cookie,服務(wù)器可以訪問存儲在服務(wù)器上的屬于客戶程序的信息。
注意:會話狀態(tài)僅在支持cookie的瀏覽器中保留,如果客戶關(guān)閉了瀏覽器中的Cookie選項,Session也就不能發(fā)揮作用了。
在ASP.NET中使用Session變量應(yīng)該注意:
(1).Session變量不用聲明就可以使用
(2).Session變量可以在Web應(yīng)用程序的多個程序之間傳送數(shù)據(jù)、但是跨越網(wǎng)站和Web應(yīng)用程序則Session變量失效
(3).為了防止服務(wù)器崩潰,應(yīng)避免使用Session變量對象。尤其是包含大量數(shù)據(jù)的數(shù)據(jù)庫對象,很容易使服務(wù)器崩潰
Session對象是HttpSessionState類的一個實例,它有以下四個常用的屬性
二、Session對象的屬性
(1).SessionID
(2).Timeout
(3).Count
(4).IsCookieless
1.SessionID屬性
SessionID屬性返回用戶的會話標(biāo)識
在用戶第一次訪問網(wǎng)頁創(chuàng)建會話時,服務(wù)器會產(chǎn)生一個相應(yīng)的Session對象,該Session對象具有與其他會話不同的標(biāo)識。該標(biāo)識就是Session對象的SessionID屬性。會話標(biāo)識以長整數(shù)類型返回。
在客戶端,瀏覽器會將本次會話的SessionID值存入到本地的Cookie中,當(dāng)再次向服務(wù)器提出頁面請求時,該SessionID值將作為Cookie信息傳送給服務(wù)器,服務(wù)器就可以根據(jù)該值找到此次會話以前在服務(wù)器上存儲的信息。當(dāng)重新開啟一個頁面的時候,該值都會變化,而且永遠(yuǎn)不會重復(fù)。
實際上當(dāng)不希望依賴于cookie時,可以將 webconfig 文件中的sessionState標(biāo)簽對應(yīng)的cookieless的值改"true" ,此時sessionid被附加于url中
2.Timeout屬性
Timeout屬性設(shè)置應(yīng)用程序會話狀態(tài)的超時時限,以分鐘為單位。
每一個與Web服務(wù)器建立連接的客戶端都擁有獨立的會話進(jìn)程,Web服務(wù)器管理這些進(jìn)程時需要占用一定的系統(tǒng)資源。在現(xiàn)實生活中,有些用戶在瀏覽網(wǎng)頁的過程中,可能要去處理其他事件而沒有關(guān)閉與服務(wù)器的連接。在這種情況下,如果服務(wù)器一直在管理與此相關(guān)的會話進(jìn)程,就會造成系統(tǒng)資源的浪費。因此,當(dāng)用戶聯(lián)機(jī)后,在一段時間內(nèi)沒有刷新或請求網(wǎng)頁,就可以考慮結(jié)束會話進(jìn)程。
若要設(shè)置在會話狀態(tài)提供程序終止會話之前各請求之間所允許的超時期限,設(shè)置Session對象的Timeout屬性即可。默認(rèn)值為20min。Timeout屬性以分鐘為單位為該應(yīng)用程序的Session對象指定超時時限。如果用戶在該超時時限之內(nèi)不刷新網(wǎng)頁,則該會話將終止。設(shè)置Timeout屬性的語法如下:
Session.Timeout = nMinutes;
參數(shù)nMinutes:指定會話空閑多少分鐘后服務(wù)器自動終止該會話。默認(rèn)值為20。
下面的語句將設(shè)置Session的過期時間為30min。
Session.Timeout = 30;
3.Count屬性
Count屬性設(shè)置Session對象包含的所有變量個數(shù)的總和。
提示:
除了內(nèi)置的屬性外,Session對象也可以像Application對象一樣設(shè)置并使用自定義屬性,這些自定義的Session對象屬性實際上就是上線用戶的私有變量。因此可以利用Session對象的變量在ASP.NET文件之間傳送輸值、字符串、數(shù)組和對象。
1: Response.Write(Session.SessionID);//隨機(jī)分配一個SessionID,每次重新打開都不一樣如:4w5noyiwpnh0ztm0cymzlo1e
2: Response.Write(Session.Timeout);//默認(rèn)20分鐘
3: Response.Write(Session.Count);//設(shè)置Session對象包含的所有變量個數(shù)的總和。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請在30日內(nèi)與聯(lián)系我們,我們會予以更改或刪除相關(guān)文章,以保證您的權(quán)益!