浅析ASP.NET授权模块

开发 后端
本文介绍ASP.NET授权模块,如果使用 Windows身份验证,就会采用FileAuthorizationModule模块,不管使用何种类型的身份验证,只要配置了web.config中的<authorization/>元素,就要使用UrlAuthorizationModule模块。

ASP.NET授权模块主要有两个:FileAuthorizationModule和UrlAuthorizationModule。他们也实现了IHttpModule接口。这些模块可以参照所试用的身份验证类型来决定到底采用哪个ASP.NET授权模块:

如果试用的是Windows身份验证,那么在授权检查的时候就会使用FileAuthorizationModule;

如果在web.config中提供了<authorization/>元素,那么就会采用UrlAuthorizationModule。如下面的:

 

  1. <authorization> 
  2. <allow roles ="" users=""/> 
  3. <deny users=""/> 
  4. </authorization> 


FileAuthorizationModule:
 
如果使用 Windows身份验证,就会采用FileAuthorizationModule模块。这个模块可以处理Authorization事件,并且能够对IIS提供的请求的令牌和目标资源执行访问检查。而且这也用到了系统的ACL(访问控制列表).

例如,如果请求的资源是Default.aspx,当前的用户是xiaoyang,那么FileAuthorizationModule就会执行访问检查,看看xiaoyang时候具备访问Default.aspx的读的权限,如果在Windows的用户账户中有xiaoyang这个账户,并且具有访问的权限,那么请求成功,否则,FileAuthorizationModule就把Reponse.StatusCode设置为401(未授权),之后请求就结束了。
 
UrlAuthorizationModule:
 
和上面的处理模块不一样,不管使用何种类型的身份验证,只要配置了web.config中的<authorization/>元素,就要使用UrlAuthorizationModule模块。这个模块在处理的时候执行如下:

(1)把<authorization/>中声明的用户名和HttpContext.User.Identity进行比较
(2)把<authorization/>声明的角色信息和HttpContext.User.IsInRole比较

如果比较成功就可以访问相应的授权的资源,否则把Reponse.StatusCode设置为401(未授权),之后请求就结束了。以上就是介绍ASP.NET授权模块

【编辑推荐】

  1. 介绍ASP.NET Framework
  2. 浅谈ASP.NET应用程序
  3. ASP.NET framework的处理方法
  4. 浅析ASP.NET安全架构
  5. 概述ASP.NET MVC与FubuMVC核心框架
责任编辑:佚名 来源: 清华大学出版社
相关推荐

2009-08-05 13:16:43

ASP.NET URL

2009-08-05 18:36:12

ASP.NET Che

2009-07-24 13:41:15

ASP.NET AJA

2009-08-05 15:50:13

ASP.NET优点

2009-07-31 12:43:59

ASP.NET MVC

2009-08-10 13:32:15

ASP.NET TimASP.NET组件设计

2009-07-21 15:47:19

2009-07-27 17:25:53

ASP.NET验证控件

2009-08-10 18:43:05

ASP.NET安装步骤

2009-08-05 16:53:14

ASP.NET组件设计

2009-08-10 18:19:37

ASP.NET安装环境

2009-07-27 14:24:16

ASP.NET访问权限

2009-07-27 15:34:11

MembershipASP.NET

2009-08-03 10:07:20

ASP.NET Ses

2009-08-04 17:16:16

ASP.NET代码优化

2009-08-05 16:17:29

ASP.NET For

2009-08-05 16:50:09

ASP.NET For

2009-08-10 14:55:43

ASP.NET htt

2009-07-24 18:02:46

ASP.NET编程

2009-07-29 09:34:54

IsPostBack属ASP.NET
点赞
收藏

51CTO技术栈公众号