我有一个 HTTPModule,它执行一些基于角色的页面访问安全性(我必须在我们获得的一些代码中改进一些安全性)。
我注意到在一个实例中它不会在 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:
我会发布代码库的更多细节,但它是如此复杂和庞大,解释起来将是一场噩梦。
所以基本上我在问'当调用 Server.Transfer 时,什么可能导致 HTTPModule 中的 AcquireRequestState 事件不触发?'