0

我需要修改 web.config 文件以确保 First.aspx 只能由订阅者组的成员访问。

什么是正确的:

一个

<location path="First.aspx"> 
<system.web> 
<authorization> 
<allow roles="Subscribers"/> 
<deny users="*"/> 
</authorization> 
</system.web> 
</location> 

或者

<location path="First.aspx"> 
<system.web> 
<authorization> 
<deny users="*"/> 
<allow roles="Subscribers"/> 
</authorization> 
</system.web> 
</location> 

为什么?

4

2 回答 2

3

第一个是正确的,因为第二个会在尝试检查他们的角色之前否认每个人。deny并且allow条目按照输入的顺序进行测试。

于 2012-10-30T11:16:29.797 回答
0

在这里我找到了这个(http://weblogs.asp.net/gurusakar/archive/2008/09/29/setting-authorization-rules-for-a-particular-page-or-folder-in-web-config.aspx ) 所以 A 是正确的:

由于授权是从上到下进行的,因此会检查规则直到找到匹配项。在这里我们有第一个,因此即使在管理员角色中,它也不会再检查允许并拒绝访问。

所以 PUT all 允许在任何拒绝之前。

注意:拒绝的工作方式与允许相同。您可以根据您的要求拒绝特定角色或用户。

于 2012-10-30T11:41:23.003 回答