ASP.NET2.0揭祕讀書筆記六——使用會話狀態Session
和cookie不一樣的是,Session狀態沒有大小限制。如果有極端的要求,可以使用Session儲存上G的資料。並且Session可以儲存更復雜的物件,例如可以在Session中儲存一個DataSet。
當使用一個Session狀態時,一個名為ASP.NET_SessionId的cookie會自動新增到瀏覽器。這個cookie包含一個唯一的識別符號,它可以在頁面切換時跟蹤使用者。
預設情況下,如果cookie被禁用了,Session狀態也不能正常工作了。預設情況下,假設使用者超過20分鐘不請求任何頁面,儲存在Session狀態中的資料會被丟棄。
使用Session物件
使用者操作Session狀態最主要的應用程式程式設計介面是HttpSessionState類。該物件被 Page.Session,Context.Session,UserControl.Session,WebService.Session和 Application.Session屬性暴露。也就是說基本可以在任何地方訪問到Session狀態。
HttpSessionState支援下面這些屬性:
CookieMode——用來指定是否啟用不依賴cookie的Session狀態功能。
Count——用來獲得Session狀態中包含項的數量。
IsCookieless——用來指定是否啟用不依賴cookie的Session狀態功能。
IsNewSession——用來檢測當前請求是否建立了新的使用者會話;
IsReadOnly——是否只讀;
Keys——用來獲取儲存在Session狀態中專案的名稱列表;
Mode——用來指定當前Session狀態的儲存處理程式。
SessionID——用來獲得唯一的會話識別符號;
Timeout——用來指定Web伺服器假設使用者離開並取消Session狀態過期分鐘數。最大為525600分鐘(1年);
HttpSessionState物件還包含以下方法:
Abandon——用來終止一個使用者會話;
Clear——用來清除Session狀態中所有專案;
Remove——用來從Session狀態中刪除特定的專案;
提交會話事件
Global.asax中包含兩個可以處理的關聯Session狀態的事件:Session Start和Session End事件。Session Start事件是在一個新會話開始時觸發的,Session End事件在會話終止時被觸發。
會話失效控制
預設情況下,20分鐘內使用者不請求頁面,Session過期。可以在配置檔案修改Session的過期時間:
也可以用程式設計的方式來改變Session狀態的過期時間
Session.Timeout = 60;
使用Cookieless的會話狀態
預設情況下,Session狀態依賴cookie。如果使用者瀏覽器禁止了cookie,預設情況下Session狀態就不能工作。這種情況下可以使用無cookie的會話,當啟用無cookie的會話時,使用者的會話ID就會新增到頁面的URL中。
可以修改配置檔案的sessionState元素,配置cookieless的值為AutoDetect。
regenerateExpiredSessionId="true" />
當使用一個Session狀態時,一個名為ASP.NET_SessionId的cookie會自動新增到瀏覽器。這個cookie包含一個唯一的識別符號,它可以在頁面切換時跟蹤使用者。
預設情況下,如果cookie被禁用了,Session狀態也不能正常工作了。預設情況下,假設使用者超過20分鐘不請求任何頁面,儲存在Session狀態中的資料會被丟棄。
使用Session物件
使用者操作Session狀態最主要的應用程式程式設計介面是HttpSessionState類。該物件被 Page.Session,Context.Session,UserControl.Session,WebService.Session和 Application.Session屬性暴露。也就是說基本可以在任何地方訪問到Session狀態。
HttpSessionState支援下面這些屬性:
CookieMode——用來指定是否啟用不依賴cookie的Session狀態功能。
Count——用來獲得Session狀態中包含項的數量。
IsCookieless——用來指定是否啟用不依賴cookie的Session狀態功能。
IsNewSession——用來檢測當前請求是否建立了新的使用者會話;
IsReadOnly——是否只讀;
Keys——用來獲取儲存在Session狀態中專案的名稱列表;
Mode——用來指定當前Session狀態的儲存處理程式。
SessionID——用來獲得唯一的會話識別符號;
Timeout——用來指定Web伺服器假設使用者離開並取消Session狀態過期分鐘數。最大為525600分鐘(1年);
HttpSessionState物件還包含以下方法:
Abandon——用來終止一個使用者會話;
Clear——用來清除Session狀態中所有專案;
Remove——用來從Session狀態中刪除特定的專案;
提交會話事件
Global.asax中包含兩個可以處理的關聯Session狀態的事件:Session Start和Session End事件。Session Start事件是在一個新會話開始時觸發的,Session End事件在會話終止時被觸發。
會話失效控制
預設情況下,20分鐘內使用者不請求頁面,Session過期。可以在配置檔案修改Session的過期時間:
也可以用程式設計的方式來改變Session狀態的過期時間
Session.Timeout = 60;
使用Cookieless的會話狀態
預設情況下,Session狀態依賴cookie。如果使用者瀏覽器禁止了cookie,預設情況下Session狀態就不能工作。這種情況下可以使用無cookie的會話,當啟用無cookie的會話時,使用者的會話ID就會新增到頁面的URL中。
可以修改配置檔案的sessionState元素,配置cookieless的值為AutoDetect。
配置Session狀態管理
預設情況下,Session狀態被儲存在ASP.NET所在的相同程式,這樣就導致了程式內Session狀態很脆弱以及程式內Session狀態可伸縮性較差的缺點。
如果你要想使Session狀態更健壯,ASP.NET Framework提供了多種方式。如可以修改Session狀態模式配置ASP.NET Framewor把Session狀態儲存到另一個地方。
那麼Session狀態的模式有哪些值呢?
Off——禁用Session狀態;
InProc——預設模式,即在ASP.NET所在的程式儲存Session狀態;
StateServer——儲存Session狀態到獨立於ASP.NET程式的一個Windows NT程式;
SQLServer——儲存Session狀態到SQL Server資料庫;
Custom——儲存Session到自定義的位置;
如果你要想使Session狀態更健壯,ASP.NET Framework提供了多種方式。如可以修改Session狀態模式配置ASP.NET Framewor把Session狀態儲存到另一個地方。
那麼Session狀態的模式有哪些值呢?
Off——禁用Session狀態;
InProc——預設模式,即在ASP.NET所在的程式儲存Session狀態;
StateServer——儲存Session狀態到獨立於ASP.NET程式的一個Windows NT程式;
SQLServer——儲存Session狀態到SQL Server資料庫;
Custom——儲存Session到自定義的位置;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-594859/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ASP.NET2.0揭祕讀書筆記五——維護應用程式狀態之cookieASP.NET筆記Cookie
- asp.net2.0揭祕讀書筆記三:使用主題設計網站ASP.NET筆記網站
- 《CSS揭祕》讀書筆記CSS筆記
- 《SIP揭祕》讀書筆記筆記
- 《揭祕跨境電商》讀書筆記筆記
- ASP.NET2.0揭祕讀書筆記之八——頁面輸出快取ASP.NET筆記快取
- 人月神話讀書筆記(六) (轉)筆記
- asp.net 2.0揭祕讀書筆記二:使用Rich控制元件ASP.NET筆記控制元件
- asp.net2.0揭祕讀書筆記四:GridView控制元件更新資料處理併發問題ASP.NET筆記View控制元件
- ASP.NET 2.0揭祕讀書筆記七——使用使用者配置檔案ProfileASP.NET筆記
- 《人月神話》讀書筆記筆記
- asp.net 2.0揭祕讀書筆記一:ASP.NET和.NET FrameworkASP.NET筆記Framework
- 《CSS揭祕》筆記(一)CSS筆記
- 大話設計模式 讀書筆記設計模式筆記
- 大話設計模式讀書筆記設計模式筆記
- 人月神話讀書筆記(三) (轉)筆記
- 人月神話讀書筆記(一) (轉)筆記
- 人月神話讀書筆記(二) (轉)筆記
- 人月神話讀書筆記(五) (轉)筆記
- 人月神話讀書筆記(四) (轉)筆記
- 會話技術 cookie和session 學習筆記會話CookieSession筆記
- 《書都不會讀,你還想要成功》讀書筆記筆記
- 《css揭祕》學習筆記(一)CSS筆記
- oracle中會話的狀態Oracle會話
- 《SQL必知必會》讀書筆記SQL筆記
- 《Mysql必知必會》讀書筆記MySql筆記
- CSS揭祕之形狀CSS
- Effective Java讀書筆記六:方法(38-44)Java筆記
- 大話APP測試2.0-讀書筆記APP筆記
- 巨杉核心筆記(一)| SequoiaDB 會話(session)簡介筆記會話Session
- Session會話Session會話
- Effective Java讀書筆記八:巢狀類(22)Java筆記巢狀
- ASP.Net Web 服務 – 如何使用會話狀態ASP.NETWeb會話
- 讀書筆記...筆記
- 讀書筆記筆記
- 《圖解TCP/IP》讀書筆記六:TCP與UDP圖解TCP筆記UDP
- 《Pro Android Graphics》讀書筆記之第六節Android筆記
- 《讀書與做人》讀書筆記筆記