httpapplication调用processrequest方法,内部执行19个管道事件,如下

 

  • beginrequest  开始处理请求
  • authenticaterequest 授权验证请求开始,获取用户授权信息
  • postauthenticaterequest 获取成功
  • aunthorizerequest  授权,一般用来检查用户是否获得权限
  • postauthorizerequest  获得授权
  • resolverequestcache 获取页面缓存结果(如果没有则执行)
  • postresolverequestcache 已缓存
  • postmaprequesthandler 创建页面对象
  • acquirerequeststate 获取session –先判断当前页面是否实现了irequiressessionstate接口,如果实现了,就从浏览器发来的请求报文中获取sessionid,并到服务器的session池中获得对应的session对象,最后赋值给httpcontext的session属性。
  • postacquirerequeststate 获得session
  • prerequesthandlerexecute 准备执行页面对象,执行页面的processrequest方法(1.aspx,1.ashx)。请求如果是1.aspx就会执行页面的声明周期
  • postrequesthandlerexecute 执行完页面对象了,
  • releaserequeststate 已释放请求状态
  • updaterequestcache 更新缓存
  • psotupdaterequestcache 已更新缓存
  • logrequest 日志记录
  • psotlogrequest 已完成日志
  • endrequest 完成