前一段时间一直想搞明白一个问题:Asp.net是如何通过Cookie来验证用户权限并自动登录的,找了许多的资料,包括System.Web.Dll文件的反汇编也看了不少,只弄懂了点击登录按钮后面发生的事情,但对一个新的请求利用判断其Cookie进行自动登录(我把不用输入用户名密码而利用Cookie的登录叫做自动登录)的过程没完全搞明白,虽然知道了票证的加解密方法,但读取请求的Cookie并进行验证发生在哪一个环节一直没搞清楚,直到找到这篇文章,希望有此兴趣的哥们一起探讨(转自CNZZ网,作者不详)
ASP.NET安全问题--ASP.NET生命周期中的验证以及身份验证模块
1.ASP.NET运行的生命周期的验证
2.身份验证模块
3.授权模块
1.ASP.NET运行的生命周期的验证
其实在ASP.NET中每一个请求都进行了验证和授权的。进行验证和授权的过程实际上是通过触发相应的事件来完成的。
在讲述验证事件之前,首先清晰一个流程:ASP.NET运行时接到一个请求的处理的流程。
先把流程描述一下,使得大家有个总体把握:一个请求来了,经过IIS,通过ISAPI,就到达了ASP.NET的管道中,然后经过一些的转化和包装,然后ASP.NET运行时开始处理这个请求了,然后是进行验证和授权,然后再进行一系列的处理,最后确定请求是是什么文件,如果是.aspx的,那么然后就开始页面的生命周期,如下图。
(对不起,不知道怎么上图)
下面就处理请求时候触发的事件顺序如下:
BeginRequest: 开发处理请求,是处理ASP.NET请求时触发的第一个事件
AuthenticateRequest:处理身份验证
...