Asp.Net MVC 的19个管道事件

Posted zhangmm96

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.Net MVC 的19个管道事件相关的知识,希望对你有一定的参考价值。

 

 

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

以上是关于Asp.Net MVC 的19个管道事件的主要内容,如果未能解决你的问题,请参考以下文章

asp.net页面生命周期请求管道19个事件

HttpApplication的处理管道19个事件。

MVC 自定义过滤器,手动调用 ASP.NET 管道事件进行单元测试

ASP.NET MVC5请求管道和生命周期

ASP.NET MVC5请求管道和生命周期

ASP.NET MVC5 的请求管道和运行生命周期