IHttpHandler中捕獲Session

     頭上的烏雲終於散去了,看來真是不能閉門造車啊,經朋友的提醒,我心中太陽也出來了,這幾天做的對特定請求進行響應的接口,只是在內部處理,不存在UI,機於這種情況,當然是使用實現IHttpHandler來進行處理,可以減掉加載HTML 控件的時間。本來都是這樣想的,對於IHttpHandler 中定義了兩個方法,ProcessRequest(HttpContext ctx) 和 IsRunable() 這兩個,看到在ProcessRequest(HttpContext ctx) 中有個HttpContext的輸入參數,本來以爲通過這個就可以對所有的服務器對象進行使用,只是在前面需要對HttpContext的引用。不過問題出現了,在這個自定義HTTP 響應處理頭中需要寫入Session,對於其他Request和Response 都可以通過使用HttpContext來引用使用,不過Session 就是不行,總是出現對象未進行引用的錯誤,真是百思不得其解,好好的HTTPCONTEXT 裏面都列出了可以使用的服務器對象,但是就是SESSION 用不了!真苦,只好將自定義HTTPHANDLER 的內容做到HTTPMODULE塊中。就在做好後,卻無意中發現在自定義HTTPHANDLER 中使用SESSION 的方法!
1、先引用System.Web.SessionState 這個命名空間,
2、如果是要在HttpHandler 中讀取Session的內容,就要在實現IHttpHandler 的類中同時實現IReadOnlySessionState 這個接口。
3、如果是要在HttpHandler 中讀寫Session的內容,就要在實現IHttpHandler 的類中同時實現IRequiresSessionState
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章