有关在Web配置中配置多个角色的更新

时间:2015-09-24 08:58:35

标签: asp.net-mvc asp.net-mvc-5 web-config authorization asp.net-roles

请注意这不重复,我正在寻找更新的答案。

我一直在寻找一种减少重复代码的方法,并且想知道我是否可以在一个字符串中添加Web配置中的多个角色。

由此:

<location path="create.aspx">
    <system.web>
    <authorization>
        <allow roles="Admin"/>
        <deny users="*"/>
    </authorization>
    </system.web>
</location>
<location path="create.aspx">
    <system.web>
    <authorization>
        <allow roles="Member"/>
        <deny users="*"/>
    </authorization>
    </system.web>
</location>

对于这样的事情:

<location path="create.aspx">
    <system.web>
    <authorization>
        <allow roles="Admin,Member"/>
        <deny users="*"/>
    </authorization>
    </system.web>
</location>

在这个问题Requiring Multiple Roles in Web.config Authorization中,答案是否定的 但这是从2010年开始的 所以我想知道从那以后是否有变化?

此外,位置路径可以加在一起吗? 以某种方式如此:

<location path="create.aspx,delete.aspx">

1 个答案:

答案 0 :(得分:0)

我在这里找到了这个:
Setting authorization rules for a particular page or folder in web.config

我修改了博客中的代码。

要选择多个用户或角色,名称会列出名称,并以逗号分隔。

e.g。

<allow users="Alice,Bob"/> 

<allow roles="Admin, Customers"/> 

要有选择地允许特定用户并拒绝所有其他用户,请确保在拒绝之前定位允许。

<location path="yourpath.aspx">
    <system.web>
        <authorization>
            <allow users="Alice,Bob"/> 
            <deny users="*"/>  
        </authorization>
    </system.web>
</location>

要设置角色,可以通过自己的文件夹访问每种角色类型。可以授予一个角色访问多个文件夹的权限。

在拒绝之前再次写允许。

例如

// Allows Admin only
<location path="AdminFolder">
    <system.web>
        <authorization>
            <allow roles="Admin, Customers"/> 
            <deny users="*"/> 
        </authorization>
    </system.web>
</location>

//Allows Admin and Employees roles
<location path="EmployeesFolder">
    <system.web>
        <authorization>
            <allow roles="Admin, Employees"/> 
            <deny users="*"/> 
        </authorization>
    </system.web>
</location>

//Allows Admin, Employees and Customers roles
<location path="CustomesrFolder">
    <system.web>
        <authorization>
            <allow roles="Admin, Employees, Customers"/> 
            <deny users="*"/> 
        </authorization>
    </system.web>
</location>

在大型组织中设置角色更有用。除了方便大量编号外,它还具有安全性。例如,员工“Alice”离开组织。如果她由Employees角色授权,则她将自动删除对Employees站点的访问权限(假设员工离开时数据库会自动更新)。使用单独的用户授权可能更难以跟踪,需要在大型组织中进行细致的管理。