ASP.net中的<authorization>标签</authorization>

时间:2012-07-02 17:14:54

标签: asp.net

我希望阻止对所有未注册用户的访问,

那么,以下工作不会发生吗?

<authorization>
      <deny users="?" />
</authorization>

但是,我看到许多用户使用<allow>标记以及deny,tag。为什么我们需要写<allow>,因为我们只是拒绝不受欢迎的用户?

2 个答案:

答案 0 :(得分:2)

拥有一个允许元素伤害。但它不会改变任何事情。

来自MSDN:

  

ASP.NET的默认配置包含   element,授权所有用户。 (默认情况下,应用此规则   如果没有其他授权规则匹配,则允许该请求。   如果找到匹配且匹配是拒绝元素,则请求为   返回401 HTTP状态代码。如果allow元素匹配,   该模块允许进一步处理请求。

编辑:回答下面的问题。你可能想要的是:

<authorization>
      <allow role="Admin"/>
      <deny users="*" />
</authorization>

换句话说。允许管理员但拒绝其他人。

答案 1 :(得分:1)

它们是您可以在您的一次性使用的组合。优秀的做法是专门调出您的授权,以便您可以覆盖您的基础。例如,您可以指定拒绝所有未授权用户,然后说允许所有其他用户或子集。订单确实像提到的aquinas一样重要。

不知道如何回答关于允许一个角色而不是另一个Admin vs用户的问题:

  

确定。此外,如果我希望只允许访问“管理员”角色而不是   “用户”角色,添加工作正常,对吧?

这可行但不如您所期望的那样。这将拒绝所有“用户”角色,但随后允许其他所有角色。因此,要解决此问题,您需要添加指定了Admin角色的allow标记。

相关问题