惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
A
About on SuperTechFans
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Blog — PlanetScale
Blog — PlanetScale
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
Vercel News
Vercel News
G
Google Developers Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
Cloudbric
Cloudbric
L
LINUX DO - 最新话题
MyScale Blog
MyScale Blog
H
Heimdal Security Blog
PCI Perspectives
PCI Perspectives
Attack and Defense Labs
Attack and Defense Labs
S
Security @ Cisco Blogs
Latest news
Latest news
I
Intezer
L
Lohrmann on Cybersecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
月光博客
月光博客
T
Threatpost
博客园 - 【当耐特】
S
Schneier on Security
P
Privacy International News Feed
G
GRAHAM CLULEY
T
Tenable Blog
AWS News Blog
AWS News Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
雷峰网
雷峰网
博客园 - Franky
Engineering at Meta
Engineering at Meta
美团技术团队
S
Secure Thoughts
T
Troy Hunt's Blog
Microsoft Security Blog
Microsoft Security Blog
SecWiki News
SecWiki News
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Cisco Talos Blog
Cisco Talos Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Martin Fowler
Martin Fowler
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 小肠与小豆子

博客园MetaWeblog使用帮助 Microsoft .NET Pet Shop 4 架构与技术分析 转载:键盘模拟鼠标(实现用键盘操作鼠标光标)(示例代码下载) 转载:Ajax 实现在WebForm中拖动控件并即时在服务端保存状态数据 (Asp.net 2.0)(示例代码下载) 转载:Asp.net 2.0 用C# 创建 PDF文件[引用] (示例代码下载) 转载:Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载) 转载:ASP.NET 2.0 HttpHandler实现对某种文件类型权限保护 转载:asp.net千奇百怪的日历 转载:ASP.net 2.0资料吐血收藏 解决:此页正在访问其它域的数据…… sql server系统表详细说明 数据库设计方法、规范与技巧 (转自Blogcn的我的窝) 14个数据库的设计技巧 (来自Blogcn中我的窝) SQL 数据库中所有的用户表,一个表的中的所有列信息 的SQL 转载:汉字转拼音_gb2312 C# C#中的一些常用属性 IIS状态一览表 IIS简介 IIS中的 MIME类型
[ASP.NET 1.1]Global.asax.cs中的方法的含义
小肠与小豆子 · 2007-11-12 · via 博客园 - 小肠与小豆子

原文:http://www.cnblogs.com/Reeezak/archive/2005/10/09/251201.html

Request有关的放到后面一起说,先说其他的5个。

Application_Init:在每一个HttpApplication实例初始化的时候执行。

Application_Disposed:在每一个HttpApplication实例被销毁之前执行。

Application_Error:所有没有处理的错误都会导致这个方法的执行。

Application_Start:在程序初始化的时候执行。在Web应用程序的生命周期里就执行一次(自动的重新启动算另外一次生命周期),这里只能放一些公用的信息,比如HttpApplicationState

Application_End:应用程序结束时,在最后一个HttpApplication销毁之后执行。对应Application_Start,在整个生命周期里面也是只执行一次。

下面来看看跟Request有关的,首先我们来看看相应的事件执行顺序:

1.       BeginRequest

2.       AuthenticateRequest

3.       AuthorizeRequest

4.       ResolveRequestCache

5.       AcquireRequestState

6.       PreRequestHandlerExecute

7.       PostRequestHandlerExecute

8.       ReleaseRequestState

9.       UpdateRequestCache

10.   EndRequest

另外还有两个:

1.       PreSendRequestHeaders

2.       PreSendRequestContent

这两个事件的顺序是无法确定的,按照MSDN的说法,它们随时都可能发生。下面就按这个顺序来解释一下它们在Global.asax.cs中相应的事件处理方法的含义。

Application_BeginRequestBeginRequest是在收到Request时第一个触发的事件,这个方法自然就是第一个执行的了。

Application_AuthenticateRequest:当安全模块已经建立了当前用户的标识后执行。

Application_AuthorizeRequest:当安全模块已经验证了当前用户的授权时执行。

Application_ResolveRequestCache:当ASP.NET完成授权事件以使缓存模块从缓存中为请求提供服务时发生,从而跳过处理程序(页面或者是WebService)的执行。这样做可以改善网站的性能,这个事件还可以用来判断正文是不是从Cache中得到的。

Application_AcquireRequestState:当ASP.NET获取当前请求所关联的当前状态(如Session)时执行(真是拗口啊,msdn上就这样写的,我自己想不出什么好句子了)。

Application_PreRequestHandlerExecute:当ASP.Net即将把请求发送到处理程序对象(页面或者是WebService)之前执行。这个时候,Session就可以用了。

Application_PostRequestHandlerExecute当处理程序对象(页面或者是WebService)工作完成之后执行。

Application_ReleaseRequestState:在ASP.NET执行完所有请求处理程序后执行。ReleaseRequestState事件将使当前状态数据被保存。

Application_UpdateRequestCache:在ASP.NET执行完处理程序后,为了后续的请求而更新响应缓存时执行。

Application_EndRequest:同上,EndRequest是在响应Request时最后一个触发的事件,这个方法自然就是最后一个执行的了。

再说这两个无顺序的

Application_PreSendRequestHeaders:向客户端发送Http标头之前执行。

Application_PreSendRequestContent:向客户端发送Http正文之前执行。

最后就是两个关于Session的,这就简单咯

Session_Start:会话开始时执行。

Session_End:会话结束或过期时执行。

其实Global.asax.cs中不只可以放这些,其他的实现了IHttpModule接口的类所暴露出来的事件都可以使用这样的方式放到这里来。前提是在Global.asax(或Web.Config)中有相应的声明。另外,Global.asax中还可以有很多的花样,但是我没有整理,其实也很简单(更主要的是很多时候不咋用得上),MSDN里面有详细的介绍,大家可以查一下,我觉得最有用的就数那个object标记了,^_^