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