我有一个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