之前做了一段ASP.NET,但都是用微软的控件在实现,并没有了解这些东西,事隔多年后,现在再做发现不能仅为功能而做功能,同事也很惭愧,对ASP.NET原理一直没弄明白,补习一下知识,在学习HttpModule时可以订阅这些事件,所以在此温习一下,并了解一下在一个应用程序域中的执行顺序:

简介:

HttpApplication类的实例(Global继承自该类)是在ASP.NET基础上构建的,不是由我们自己构建的,当然用HttpModule的好处也在于可以将功能独立到其它类库中,HttpApplication类在一个生命周期中用于处理多个请求,但一次只能处理一个请求。这样,成员变量才能存储针对某个请求的数据。

经测试:若有多个模块都订阅了以下事件,执行的顺序按Web.config中HttpModul节点的配置顺序执行。

请求执行的顺序:

  1. BeginRequest(在 ASP.NET 响应请求时作为 HTTP 执行管线链中的第一个事件发生)

  2. AuthenticateRequest (当安全模块已建立用户标识时发生。注:AuthenticateRequest 事件发出信号表示配置的身份验证机制已对当前请求进行了身份验证。预订 AuthenticateRequest 事件可确保在处理附加的模块或事件处理程序之前对请求进行身份验证。)

  3. PostAuthenticateRequest (注意:该事件在 .NET Framework 2.0 版中是新增的。 当安全模块已建立用户标识时发生。PostAuthenticateRequest 事件在AuthenticateRequest 事件发生之后引发。预订 PostAuthenticateRequest 事件的功能可以访问由 PostAuthenticateRequest 处理的任何数据。)

  4. AuthorizeRequest (当安全模块已验证用户授权时发生。AuthorizeRequest 事件发出信号表示 ASP.NET 已对当前请求进行了授权。预订AuthorizeRequest 事件可确保在处理附加的模块或事件处理程序之前对请求进行身份验证和授权。)

  5. PostAuthorizeRequest (.NET 2.0里新增的事件。在当前请求的用户已获授权时发生。PostAuthorizeRequest 事件发出信号表示 ASP.NET 已对当前请求进行了授权。预订PostAuthorizeRequest 事件可确保在处理附加的模块或处理程序之前对请求进行身份验证和授权。)

  6. ResolveRequestCache (当 ASP.NET 完成授权事件以使缓存模块从缓存中为请求提供服务时发生,从而跳过事件处理程序(例如某个页或 XML Web services)的执行。)

  7. PostResolveRequestCache (在 ASP.NET 跳过当前事件处理程序的执行并允许缓存模块满足来自缓存的请求时发生。)在 PostResolveRequestCache事件之后、PostMapRequestHandler 事件之前创建一个事件处理程序(对应于请求 URL 的页)。

  8. PostMapRequestHandler

  9. AcquireRequestState

  10. PostAcquireRequestState

  11. PreRequestHandlerExecute(执行事件处理程序。)

  12. PostRequestHandlerExecute

  13. ReleaseRequestState

  14. PostReleaseRequestState (在PostReleaseRequestState 事件之后,响应筛选器(如果有)将对输出进行筛选。)

  15. UpdateRequestCache

  16. PostUpdateRequestCache

  17. EndRequest

转载于:https://www.cnblogs.com/Alexantao/articles/3274740.html

HttpApplication 事件执行顺序相关推荐

  1. asp.net中page对象生命周期和各事件执行顺序

    asp.net页面事件执行顺序: 一.初始化部分: 1.构造函数:创建page类的一个实例,初始化page类的属性. 2.AddParsedSubObject函数: protected virture ...

  2. 引用asp.net母版页后,母版页和内容页的页面事件执行顺序

    如下,经测试得到的执行步骤: 第01步.内容页的 Page_PreInit 第02步.母版页的 Page_Init 第03步.内容页的 Page_Init 第04步.内容页的 Page_InitCom ...

  3. addeventlistener事件第三个参数_简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序...

    这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 javascript给DOM绑定事件处理函数总的来说有2种方式:在htm ...

  4. ASP.NET 页面事件执行顺序 收藏

    ASP.NET 页面事件执行顺序 收藏 过程描述 下面是ASP.NET页面初始的过程: 1. Page_Init(); 2. Load ViewState; 3. Load Postback data ...

  5. 简析JavaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序

    JavaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序 这篇文章主要介绍了javaScript 事件绑定.事件冒泡.事件捕获和事件执行顺序整理总结的相关资料 (一)事件绑定的几种方式 jav ...

  6. jquery ajax 事件执行顺序

    jquery中各个事件执行顺序如下: 1.ajaxStart(全局事件) 2.beforeSend 3.ajaxSend(全局事件) 4.success 5.ajaxSuccess(全局事件) 6.e ...

  7. WPF 九 ( loaded 事件和 Initialized 事件区别以及事件执行顺序总结)

    在 WPF 中, 控件有 Loaded 和 Initialized 两种事件. 初始化和加载控件几乎同时发生, 因此这两个事件也几乎同时触发. 但是他们之间有微妙且重要的区别..具体区别如下 概念介绍 ...

  8. javascript中的事件冒泡、事件捕获和事件执行顺序

    谈起JavaScript的 事件,事件冒泡.事件捕获.阻止默认事件这三个话题,无论是面试还是在平时的工作中,都很难避免. DOM事件标准定义了两种事件流,这两种事件流有着显著的不同并且可能对你的应用有 ...

  9. aspx页面事件执行顺序

    一.详细版 l 初始化 ² 当页面被提交请求第一个方法永远是构造函数.您可以在构造函数里面初始一些自定义属性或对象,不过这时候因为页面还没有被完全初始化所以多少会有些限制.特别地,您需要使用HttpC ...

最新文章

  1. datagrid底部显示水平滚动_DevExpress WPF v19.1:Data Grid/Tree List等控件功能增强
  2. 【禅模式】如何进入极度专注的心流状态,让前端开发能力发挥到最大?设置VSCode禅模式快捷键Alt+F切换全屏,适合演示代码使用
  3. 软件工程实践第二次作业——个人项目实战(数独)
  4. 软件测试体系划分与职业素养
  5. XMLHttpRepuest2
  6. Python实现九九乘法表
  7. 推荐系统炼丹笔记:EdgeRec阿里边缘计算推荐系统
  8. Oracle 10.2.0.5 非归档current redolog损坏处理一例
  9. 编辑视频贴纸软件_视频特效编辑软件下载-视频特效编辑器下载V10.9.93-西西软件下载...
  10. django之关系及查询,数据类型,约束,分页
  11. 题解:子矩阵(NOIP2014普及组T4)
  12. rtl8812au linux驱动下载,Ubuntu 16.04 安装 rtl8812au系列 (DWA-182) wireless adapter driver
  13. android 代码混淆配置
  14. 接口接收数据_你知道RS232与RS485接口的区别吗?
  15. ocr识别身份证护照阅读器
  16. 怎样轻松搞定图片转ico?
  17. MySQL-5.5.32 配置文件优化详解
  18. Java SE(5)
  19. KPM算法——数据结构|复习局|串|复杂模式匹配算法|二维数组解决KPM
  20. python多线程请求接口_python多线程实现http请求

热门文章

  1. 现在开始(译) 明确的知道你想要什麽是关键 每次 只做一件事的习惯 成功的人是因为屡次尝试经历失败保持激情 动手一试...
  2. hdu3870——平面图最小割
  3. javascript:jquery.history.js使用方法
  4. (码友推荐)2018-07-12 .NET及相关开发资讯速递
  5. 从零开始编写自己的C#框架(25)——网站部署
  6. [转]你所不知的 CSS ::before 和 ::after 伪元素用法
  7. 2020年物联网网络容量至少是目前的1000倍
  8. SSH 中从后台传值到前台JSP,传不过去问题
  9. 升级到Windows 8.1
  10. Android Studio:64K问题com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536