ASP.NET授权设置

时间:2010-06-25 10:19:54

标签: asp.net asp.net-membership

我想在ASP.NET应用程序中设置授权权限。

因此,在一个特定文件夹中,我想拒绝某个特定用户访问哪个用户角色被允许为该特定用户。

 <authorization>
            <allow roles="General" />
            <allow roles="Sale" />
            <allow roles="Administrator" />
            <deny users="admin_test" />
 </authorization>

但是,当我尝试使用admin_test帐户访问该特定文件夹中的页面时,系统允许我访问该页面而不是拒绝访问。

有人能说出上述配置有什么问题吗?

非常感谢任何帮助。

此致

2 个答案:

答案 0 :(得分:3)

您需要先列出deny。授权引擎将stop on the first matching rule

  

在运行时,授权模块从最本地配置文件开始迭代allow和deny元素,直到授权模块找到适合特定用户帐户的第一个访问规则。然后,授权模块根据所找到的第一个访问规则是允许还是拒绝规则,授予或拒绝访问URL资源。

答案 1 :(得分:1)

根据http://msdn.microsoft.com/en-us/library/wce3kxhd.aspx

  

规则如下:

     

应用程序级别中包含的规则   配置文件优先   过继承的规则。系统   确定哪个规则优先   通过构建所有的合并列表   最新的URL规则   规则(最接近层次结构的规则)   在列表的头部。

     

给出一组合并规则   应用程序,ASP.NET开始于   列表和检查规则的负责人   直到找到第一场比赛。该   ASP.NET的默认配置   包含一个元素,   授权所有用户。 (通过   默认情况下,此规则最后应用。)   如果没有其他授权规则匹配,   请求是允许的。如果匹配   发现并且匹配是一个拒绝元素,   请求与401一起返回   HTTP状态代码。如果是允许元素   匹配,模块允许请求   进一步处理。

因此,如果admin_test用户处于常规,销售,管理员角色中的任何一个,则它将首先匹配并允许访问。尝试在允许规则之前放置拒绝规则。