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 完成