《ASP.NET 本质论》HttpApplication的处理管道

本文探讨了ASP.NET中的HttpApplication对象如何处理请求,它通过处理管道和事件的方式允许程序员自定义请求处理过程。HttpApplication提供19个标准事件,可用于扩展功能。此外,介绍了如何注册HttpModule,包括在配置文件中的注册方式以及ASP.NET 4.0中使用PreApplicationStartMethodAttribute不依赖配置文件的注册方法。
摘要由CSDN通过智能技术生成

        HttpApplication对象是ASP.NET中处理请求的重要对象,但是,这种类型的对象实例不是由程序员来创建的,而是由ASP.NET帮助我们创建的。为了便于扩展处理工作,HttpApplication采用处理管道的方法进行处理,将处理的过程分为多个步骤,每个步骤通过事件的形式暴露给程序域,这些事件按照固定的处理顺序依次触发,程序员通过编写事件处理方法就可以自定义每一个请求的扩展处理过程。
      对于HttpApplication来说,到ASP.NET 4.0版本,提供了19个标准事件,如下表:
可参见MSDN:http://msdn.microsoft.com/zh-cn/library/system.web.httpapplication.aspx

序号

名称

说明

1

BeginRequest

ASP.NET开始处理的第一个时间,表示处理的开始

2

AuthenticateRequest

验证请求,一般用来取得请求的用户信息

3

PostAuthenticateRequest

已经获取请求的用户信息

4

AuthorizeRequest

授权,一般用来检查用户的请求是否获得权限

5

PostAuthorizeRequest

用户请求已经得到授权

6

ResolveRequestCache

获取以前处理缓存的处理结果,如果以前缓存过,那么不必再进行请求的处理工作,直接返回缓存结果

7

PostResolveRequestCache

已经完成缓存的存取工作(在 PostResolveRequestCache 事件之后和 PostMapRequestHandler 事件之前,会创建一个事件处理程序(一个对应于请求 URL 的页)。 如果服务器在集成模式下运行 IIS 7.0 并且 .NET Framework 至少为 3.0 版本,则会引发 MapRequestHandler 事件。 如果服务器在经典模式下运行 IIS 7.0 或者运行的是较早版本的 IIS,则无法处理此事件。)

8

PostMapRequestHandler

已经根据用户的请求,创建了处理请求的处理器对象

9

AcquireRequestState

取得请求的状态,一般用于Session

10

PostAcquireRequestState

已经取得了Session

11

PreRequestHandlerExecute

准备执行处理程序(执行事件处理程序。)

12

PostRequestHandlerExecute

已经执行了处理程序

13

ReleaseRequestState

释放请求的状态

14

PostReleaseRequestState

已经释放了请求的状态(在引发 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值