asp.net的请求管道事件
一、引言
上篇介绍了Http的请求过程提到了在请求进入到创建完 HttpApplication 对象后,将进入一系列的处理事件Event,那么这些事件具体都有哪些呢,这篇文章就来简要阐述一下。
二、正文
既然请求最后交给了 HttpApplication 处理,那么通过获取该对象,我们就可以通过反射来获取到该对象当中所有的事件,先看下具体的代码。
public ViewResult GetEvents() { HttpApplication application = HttpContext.ApplicationInstance; List<SysEvent> sysEventList = new List<SysEvent>(); foreach (EventInfo item in application.GetType().GetEvents()) { sysEventList.Add(new SysEvent() { Name = item.Name, TypeName = item.GetType().Name }); } return View(sysEventList); }
所以我们可以知道,httpapplication 会按照顺序执行25个事件,这些具体的事件如下:
而一般都会执行的事件为2到21这19个事件。那么了解了这些事件之后,我们可以做什么呢?我们可以在处理请求的时候增加一些我们自定义的功能,那么如何增加呢,可以通过实现 IHttpModule 接口来进行扩展。