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 |
ASP.NET开始处理的第一个时间,表示处理的开始 |
|
2 |
验证请求,一般用来取得请求的用户信息 |
|
3 |
已经获取请求的用户信息 |
|
4 |
授权,一般用来检查用户的请求是否获得权限 |
|
5 |
用户请求已经得到授权 |
|
6 |
获取以前处理缓存的处理结果,如果以前缓存过,那么不必再进行请求的处理工作,直接返回缓存结果 |
|
7 |
已经完成缓存的存取工作(在 PostResolveRequestCache 事件之后和 PostMapRequestHandler 事件之前,会创建一个事件处理程序(一个对应于请求 URL 的页)。 如果服务器在集成模式下运行 IIS 7.0 并且 .NET Framework 至少为 3.0 版本,则会引发 MapRequestHandler 事件。 如果服务器在经典模式下运行 IIS 7.0 或者运行的是较早版本的 IIS,则无法处理此事件。) |
|
8 |
已经根据用户的请求,创建了处理请求的处理器对象 |
|
9 |
取得请求的状态,一般用于Session |
|
10 |
已经取得了Session |
|
11 |
准备执行处理程序(执行事件处理程序。) |
|
12 |
已经执行了处理程序 |
|
13 |
释放请求的状态 |
|
14 |
已经释放了请求的状态(在引发 |