为什么HttpContext.Current.Handler为null?

Pal*_*eta 7 .net asp.net httpmodule handler

我正在尝试访问HttpModule中的一个页面,我想我应该通过调用HttpContext.Current.Handler(这应该引用当前页面)来做到这一点,但我一直都是null.

我正在开发使用.Net 3.5框架.

我在AuthorizeRequest和AuthenticateRequest上检查这个

谢谢.

Meh*_*ari 10

可能,请求尚未发送给处理程序(例如,您已经进入BeginRequest).

  • @Paleta:你不能在那里检查.处理程序将在请求经过身份验证/授权后被选中.您可以在`PostMapRequestHandler`事件中查看它. (3认同)

SLa*_*aks 5

AuthorizeRequest和中AuthenticateRequest,尚未创建处理程序。(如果请求被拒绝,则不应创建处理程序)因此,此属性为null。

为什么是您Page,您又想做什么?

您可以尝试处理PostMapRequestHandler,它会在解决之后发生Page,如果您决定拒绝请求,则抛出HttpException或调用Response.End

但是,请注意,要获取处理程序的实例,必须运行其构造函数;确保它没有做任何关键或敏感的事情。