ASP.NET运行时的处理流程
其实在ASP.NET中每一个请求都进行了验证和授权的。进行验证和授权的过程实际上是通过触发相应的事件来完成的。
在讲述验证事件之前,首先清晰一个流程:ASP.NET运行时接到一个请求的处理的流程。
先把流程描述一下,使得大家有个总体把握:一个请求来了,经过IIS,通过ISAPI,就到达了ASP.NET的管道中,然后经过一些的转化和包装,然后ASP.NET运行时开始处理这个请求了,然后是进行验证和授权,然后再进行一系列的处理,***确定请求是是什么文件,如果是.aspx的,那么然后就开始页面的生命周期,如下图。
下面就处理请求时候触发的事件顺序如下:
BeginRequest: 开发处理请求,是处理ASP.NET请求时触发的***个事件
AuthenticateRequest:处理身份验证
...
AuthorizeRequest:处理授权
...
所以大家可以看出,其实在请求的处理过程中,身份的验证和授权发生的时期是很早的。而且有关验证的一些信息,如用户名和角色在处理完这两个事件之后就已经确定,并且填充。下面我想用个图来讲述:
一般对于请求的验证和授权,我们是希望也应该自己控制这个过程的,所以我们可以在AuthenticateRequest和AuthorizeRequest的事件处理中加入我们自己的代码。以上是ASP.NET运行时的处理流程。
【编辑推荐】