2012-07-02 37 views
1

我想阻止访问所有非注册用户标签,<授权>在ASP.net

那么,难道不下面的工作?

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

但是,我见过很多用户在使用<allow>标签以及与否认,标签。为什么我们需要写<allow>,因为我们只是拒绝不需要的用户?

+2

这个问题是关于什么的? C#是一种语言,因此没有与之相关的“标签,如果你的问题是关于ASP.NET的配置,请正确标记。 –

+0

是的,抱歉,只是编辑它 – Akash

回答

2

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

从MSDN:

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

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

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

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

+0

ok。我希望只允许访问“管理员”角色而不是“用户”角色,添加会正常工作,对吧? – Akash

+0

请参阅我的更新回答。 – aquinas

1

这是他们的组合,你可以在你的一次性使用。明确地发出您的授权是一个很好的做法,因此您可以覆盖您的基地。例如,您可以指定拒绝所有未经授权的用户,然后说允许所有其他用户或子集。这个命令就像提到的aquinas一样重要。

不知道该如何应对你的问题,关于允许一个角色而不是其他管理员用户VS:

确定。另外,如果我希望只允许访问“管理员”角色,而不是“用户”角色,那么添加会很好,对不对?

这会工作,但不会如您所料。这会拒绝所有的“用户”角色,但是允许其他任何角色。因此,要解决这个问题,您需要添加指定了Admin角色的allow标签。

+0

谢谢........ ........... – Akash