我一直在高低寻找有关用法的正确解释。和*。
我注意到我可以使用以下方法拒绝所有用户的访问:
<deny users="*"/>
如果我想允许某个组,则应该在其上方添加下一行:
<allow roles="NETWORKDNS\ROLE"/>
但是,当我看到人们使用?时,我开始失去了什么意思,例如:
<allow roles="NETWORKDNS\?"/>
对我来说,这意味着允许所有请勿来自NETWORKDNS的用户,但我在环境中进行了测试,这似乎是错误的。
总的来说,我学到了:
(*)=每个人
(?)=没有一个
但是我开始对IIS的行为感到困惑,除了谈论用户时,它们似乎是相反的。
我找不到关于MSDN或SO的任何解释。
有人对我有很好的参考链接吗?
2 个答案:
答案 0 :(得分:1)
查看authorization
元素的allow和deny属性的文档,可以得出结论,第二个示例(<allow roles="NETWORKDNS\?"/>
)只是 invalid < / strong> ...或更确切地说:“是否允许 NETWORKDNS 中名为?的角色”
您可以在this链接下找到许多示例,也可以在here
下找到这些示例
此外,准确查看attribute roles
星号(*)和问号(?)对于该属性无效
答案 1 :(得分:1)
请参阅allow和deny的文档。
他们已经明确定义了users
属性。
必需的字符串属性。
以逗号分隔的允许访问资源的用户名列表。问号(?)表示已授予匿名用户对该资源的访问权限。星号(*)表示已授予所有用户对该资源的访问权限。
问号(?)指匿名用户,即您网站上的非登录用户。您对星号(*)的理解是正确的,因为它涉及所有用户。
kasptom 分享了此link的示例配置。作者还提到了*和?的相同定义。
修改:
我想念您正在尝试使用*和?在角色属性中。那是错的。请参阅以上链接中的示例。您可以将用户和角色属性一起使用以创建严格的访问规则。