Windows身份验证,授权角色/用户*和?含义

时间:2018-12-04 14:32:14

标签: windows authentication

我一直在高低寻找有关用法的正确解释。和*。 我注意到我可以使用以下方法拒绝所有用户的访问:

<deny users="*"/>

如果我想允许某个组,则应该在其上方添加下一行:

<allow roles="NETWORKDNS\ROLE"/>

但是,当我看到人们使用?时,我开始失去了什么意思,例如:

<allow roles="NETWORKDNS\?"/>

对我来说,这意味着允许所有请勿来自NETWORKDNS的用户,但我在环境中进行了测试,这似乎是错误的。

总的来说,我学到了:

(*)=每个人

(?)=没有一个

但是我开始对IIS的行为感到困惑,除了谈论用户时,它们似乎是相反的。 我找不到关于MSDN或SO的任何解释。

有人对我有很好的参考链接吗?

2 个答案:

答案 0 :(得分:1)

查看authorization元素的allowdeny属性的文档,可以得出结论,第二个示例(<allow roles="NETWORKDNS\?"/>)只是 invalid < / strong> ...或更确切地说:“是否允许 NETWORKDNS 中名为的角色”

您可以在this链接下找到许多示例,也可以在here

下找到这些示例

此外,准确查看attribute roles星号(*)和问号(?)对于该属性无效

答案 1 :(得分:1)

请参阅allowdeny的文档。

他们已经明确定义了users属性。

  

必需的字符串属性。

     

以逗号分隔的允许访问资源的用户名列表。问号(?)表示已授予匿名用户对该资源的访问权限。星号(*)表示已授予所有用户对该资源的访问权限。

问号(?)指匿名用户,即您网站上的非登录用户。您对星号(*)的理解是正确的,因为它涉及所有用户。

kasptom 分享了此link的示例配置。作者还提到了*和?的相同定义。

修改

我想念您正在尝试使用*和?在角色属性中。那是错的。请参阅以上链接中的示例。您可以将用户和角色属性一起使用以创建严格的访问规则。