我有一個HTTPModule做一些基於角色的頁面訪問安全性(我不得不將一些安全性改進到我們已經獲得的一些代碼中)。爲什麼我的HTTPModule中的AcquireRequestState不會觸發_sometimes_?
我注意到,在一個實例中,它不會在Server.Transfer上觸發。
這裏的代碼片段:
' move to target page
Select Case eTransferMethod
Case TargetPageTransferMethod.Redirect
Page.Response.Redirect(strPage, False)
Case TargetPageTransferMethod.Transfer
Context.Handler = Me
Page.Server.Transfer(strPage)
Case TargetPageTransferMethod.None
' Do nothing
End Select
我在這裏講的情況是TargetPageTransferMethod.Transfer情況。該頁面將成爲一個.aspx頁面。
現在我知道AcquireRequestState在此代碼中的其他Server.Transfer調用中被觸發。事實上,當點擊頁面上的按鈕時,它會在回發中被觸發。具有諷刺意味的是,我的安全代碼在轉移到此頁面時被繞過,但當點擊此頁面的取消按鈕時拒絕回發。 :eek:
我會發布代碼庫的更多細節,但它是如此複雜和蔓延,這將是一個噩夢來解釋。
所以基本上我問'什麼可能導致HTTPModule中的AcquireRequestState事件在調用Server.Transfer時不會觸發?'
是的,你是對的。我剛剛重新檢查了我的概念測試網站的初始證明,並且我只能假設我在進行初始測試時喝醉了。 :( 要重新考慮這個想法,使用HTTPModule。 – user129345 2009-12-08 15:50:17