技术开发 频道

ASP.NET生命周期中的验证以及身份验证模块

  所以大家可以看出,其实在请求的处理过程中,身份的验证和授权发生的时期是很早的。而且有关验证的一些信息,如用户名和角色在处理完这两个事件之后就已经确定,并且填充。下面我想用个图来讲述:

  一般对于请求的验证和授权,我们是希望也应该自己控制这个过程的,所以我们可以在AuthenticateRequest和AuthorizeRequest的事件处理中加入我们自己的代码。一般在网站中加入Global.asax文件。
 
  AuthenticateRequest事件:
       
  当一个请求需要进行身份验证时,HttpApplication对象就会触发AuthenticateRequest事件,这也意味着每次对ASP.NET应用程序进行页面请求时都会触发这个事件。
      
  在这个事件中实际上是调用相应的身份验证模块来处理身份验证的。例如对于Forms身份验证模块而言,就是从加密的cookie中提取用户信息。
 
  AuthorizeRequest事件:
       
  AuthorizeRequest事件是在AuthenticateRequest事件中通过了身份验证时候才触发的。AuthorizeRequest事件调用相应的授权模块来检查用户是否被授权访问他们请求的资源。因为在AuthenticateRequest事件完成之后就已经有了用户的表示Identity和IPricipal,也就知道了用户名和角色的信息。

0
相关文章