zoukankan      html  css  js  c++  java
  • 有关IHttpModule与页面的执行顺序

      IHttpModule 是作为ASP.NET 应用程序生命周期的一个扩展接口,通过对其进行扩展可以在我们常用的aspx文件执行前后做一些通用的处理,比如验证用户或者配置权限。

    1. 对请求进行验证,将检查浏览器发送的信息,并确定其是否包含潜在恶意标记。
    2. 如果已在 Web.config 文件的 UrlMappingsSection 节中配置了任何 URL,则执行 URL 映射。
    3. 引发 BeginRequest 事件。
    4. 引发 AuthenticateRequest 事件。
    5. 引发 PostAuthenticateRequest 事件。
    6. 引发 AuthorizeRequest 事件。
    7. 引发 PostAuthorizeRequest 事件。
    8. 引发 ResolveRequestCache 事件。
    9. 引发 PostResolveRequestCache 事件。
    10. 根据所请求资源的文件扩展名(在应用程序的配置文件中映射),选择实现 IHttpHandler 的类,对请求进行处理。如果该请求针对从 Page 类派生的对象(页),并且需要对该页进行编译,则 ASP.NET 会在创建该页的实例之前对其进行编译。
    11. 引发 PostMapRequestHandler 事件。
    12. 引发 AcquireRequestState 事件。
    13. 引发 PostAcquireRequestState 事件。
    14. 引发 PreRequestHandlerExecute 事件。
    15. 为该请求调用合适的 IHttpHandler 类的 ProcessRequest 方法(或异步版 IHttpAsyncHandler..::.BeginProcessRequest)。例如,如果该请求针对某页,则当前的页实例将处理该请求。
    16. 引发 PostRequestHandlerExecute 事件。
    17. 引发 ReleaseRequestState 事件。
    18. 引发 PostReleaseRequestState 事件。
    19. 如果定义了 Filter 属性,则执行响应筛选。
    20. 引发 UpdateRequestCache 事件。
    21. 引发 PostUpdateRequestCache 事件。
    22. 引发 EndRequest 事件。
    23. 引发 PreSendRequestHeaders 事件。
    24. 引发 PreSendRequestContent 事件。

    看到这么多茫茫然的事件,蒙了不知道是做什么的,也不知道与Page的执行顺序哪些事件在前哪些事件在后,于是做个小小的测试,可以发现在context_PostRequestHandlerExecute之前的一个步骤是进行自己页面编写的顺序,然后其前面则是优先于aspx页面先执行。

     image

  • 相关阅读:
    java lambda表达式检查list集合是否存在某个值
    Java使用枚举来消除if else(转载)
    常用的设计模式汇总,超详细!
    mybatis generator 自动生成代码
    eclipse集成lombok插件
    eclipse使用mybatis实现Java与xml文件相互跳转
    GitLab企业级代码管理仓库
    详解Eureka 缓存机制
    JAVA设计模式之工厂模式
    solr常见错误
  • 原文地址:https://www.cnblogs.com/yukun/p/1678208.html
Copyright © 2011-2022 走看看