ASP.NET 授权
可以使用授权来确定是否一个通过验证的用户已经访问了某个特定的资源。这个授权过程可以让我们限制用户的访问权限——通过赋予或者取消一个用户所能拥有的特定权限。ASP.NET提供了两种授权方式:文件授权和URL授权。
(1)ASP.NET 文件授权。当我们使用windows认证的时候,此方式自动生效,它基于IIS的认证。当用户尝试访问某个ASP.NET应用的受保护资源的时候,IIS首先对其进行验证,之后,ASP.NET检查NTFS文件权限或者ACL来确定此用户是否有权限访问资源。
(2)ASP.NET URL授权。当不使用windows认证的时候,可以使用ASP.NET URL授权。当用户尝试访问某个资源时,ASP.NET URL授权机制根据ASP.NET验证过程分配给application的角色和application的身份来同意或者拒绝请求者对资源的访问。使用ASP.NET URL授权可以做如下几件事情:
◆Deny or allow access to individual users or groups of users.
◆Deny or allow access to specific roles.
◆Restrict access based on the type of HTTP action attempted, such as Get or Post.
例子:
- <authorization>
- <allow users="Domain\user1, Domain\user2"/>
- <deny users="*"/>
- </authorization>
拒绝匿名用户访问(?代表匿名用户,*代表任何用户):
- <authorization>
- <deny users="?"/>
- </authorization>
只有拥有Domain\Administrators角色的用户才可访问:
- <authorization>
- <allow roles="Domain\Administrators"/>
- <deny users="*"/>
- </authorization>
注意配置节中的内容是有顺序关系的,ASP.NET查找<authorization>的子项,直到找到了匹配当前用户的规则(rule)。
任何人都不能访问:
- <authorization>
- <deny users="*"/>
- <allow roles="Domain\Administrators"/>
- <allow users="Domain\user1, Domain\user2"/>
- </authorization>
使用Verb属性可以限制HTTP的动作(Action):
- <allow VERB="POST" users="user1, user2" />
- <deny VERB="POST" users="*" />
- <allow VERB="GET" users="*" />
以上介绍ASP.NET URL授权
【编辑推荐】