2009-01-09 58 views
0

我想使用IHttpModule設置會話值。我已經將HttpModule設置爲用於所有請求,而不僅僅是託管/ ASPX頁面。IIS HttpModule無法設置會話

但是我發現,當一個非ASP.NET頁面的請求進入(如gif)時,HttpApplication的會話成員會拋出異常或爲空。

我發現下面的SO張貼這背後的原因是:link

當我換了一個實現IRequiresSessionState會話成員是在HTTP模塊可用的HttpHandler的,和一個Set-Cookie發送回到瀏覽器,但後來當我嘗試讀取正常的ASPX頁面中的會話內容時,我設置的任何值都不存在。調試時,我可以看到SessionID在HttpModule和普通ASPX頁面中都是相同的。

我是否需要做任何事情來強制保存會話?我假設在交換虛假的HttpHandler時初始化會話,不得不放棄原來不執行IRequiresSessionState的會話,導致會話在請求結束時不被保存。

回答

2

我剛剛完成了,我不得不將原始HttpHandler從PostAcquireRequestState重新映射到PreRequestHandlerExecute。