何时使用HttpHandlers和HttpModules?
我不能在ASPX页面代码中编写代码吗?
答案 0 :(得分:23)
HttpModule允许您拦截请求(在其处理程序处理之前)和生成的响应。如果需要,它可以修改请求/响应。 ASP.NET会话,配置文件,身份验证等也实现为HttpModule - 这些模块检查请求并将必要的上下文(例如,基于会话cookie的会话状态)附加到请求。通过后面的aspx代码很难实现这样的功能。
HttpHandler负责处理请求,即生成HTTP响应,通常(但不总是)意味着生成一些html。页面类(aspx的基础)只是http处理程序(其他端点也是如此,例如asmx,ashx,axd)。当您需要对响应生成进行绝对控制时,原始处理程序(ashx)非常有用 - 可以使用aspx,但是它会不必要地涉及所有默认页面/控制机制(视图状态,发布日期,控制树等)