请注意这不重复,我正在寻找更新的答案。
我一直在寻找一种减少重复代码的方法,并且想知道我是否可以在一个字符串中添加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">
答案 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站点的访问权限(假设员工离开时数据库会自动更新)。使用单独的用户授权可能更难以跟踪,需要在大型组织中进行细致的管理。