我希望阻止对所有未注册用户的访问,
那么,以下工作不会发生吗?
<authorization>
<deny users="?" />
</authorization>
但是,我看到许多用户使用<allow>
标记以及deny,tag。为什么我们需要写<allow>
,因为我们只是拒绝不受欢迎的用户?
答案 0 :(得分:2)
拥有一个允许元素伤害。但它不会改变任何事情。
来自MSDN:
ASP.NET的默认配置包含 element,授权所有用户。 (默认情况下,应用此规则 如果没有其他授权规则匹配,则允许该请求。 如果找到匹配且匹配是拒绝元素,则请求为 返回401 HTTP状态代码。如果allow元素匹配, 该模块允许进一步处理请求。
编辑:回答下面的问题。你可能想要的是:
<authorization>
<allow role="Admin"/>
<deny users="*" />
</authorization>
换句话说。允许管理员但拒绝其他人。
答案 1 :(得分:1)
它们是您可以在您的一次性使用的组合。优秀的做法是专门调出您的授权,以便您可以覆盖您的基础。例如,您可以指定拒绝所有未授权用户,然后说允许所有其他用户或子集。订单确实像提到的aquinas一样重要。
不知道如何回答关于允许一个角色而不是另一个Admin vs用户的问题:
确定。此外,如果我希望只允许访问“管理员”角色而不是 “用户”角色,添加工作正常,对吧?
这可行但不如您所期望的那样。这将拒绝所有“用户”角色,但随后允许其他所有角色。因此,要解决此问题,您需要添加指定了Admin角色的allow标记。