我正在使用 MembershipProvider,目前有 3 个角色:
用户、超级用户、管理员。
另外,我还有只有管理员和超级用户才能看到的页面。
对于这些页面,我使用 Web 配置中的配置:
<location path="Users.aspx">
<system.web>
<authorization>
<allow roles="Admin, Super User"/>
<deny users="*" />
</authorization>
</system.web>
</location>
这工作得很好。
但我有一堆页面
Evaluations
Actions
Reports
Files
我想要单独访问。我想单独授予对每个页面的访问权限。
有没有比为每个页面创建角色并分配给这些角色更好的方法?
附:
我使用的是 ASP.NET,而不是 MVC
是的,将您的文件夹结构修改为如下所示:
- Super User
- Admin
- All
然后你可以做这样的事情:
<location path="Super User">
<system.web>
<authorization>
<allow roles="Super User"/>
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="Super User/Admin">
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*" />
</authorization>
</system.web>
</location>
<location path="Super User/Admin/All">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
现在只需将页面放入适当的文件夹中即可。根据MSDN 文档 http://msdn.microsoft.com/en-us/library/b6x6shw7%28v=vs.100%29.aspxlocation 元素适用于所有子目录:
指定所包含的配置设置适用的资源。使用缺少路径属性的 location 将配置设置应用于当前目录和所有子目录。如果使用的 location 不带路径属性且 allowedOverride 为 False,则子目录中的 Web.config 文件无法更改配置设置。
so Super User
根据定义,将有权访问下面的所有其他页面,依此类推。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)