我一直在网上搜索,但找不到确切的解决方案。对不起,这有点长,但我希望有人可以帮助我。
我正在使用ASP.Net(4.0)开发基于Web的系统。该系统允许管理员添加新角色。除了添加新角色之外,管理员还可以设置角色的权限以访问不同的页面。
例如,默认情况下,用户角色只能访问主页和。假设管理员决定为此角色设置新权限并允许其访问另一个页面(例如:ManageUsers.aspx)
我通过web.config使用Forms身份验证。网页位于两个单独的文件夹中,每个文件夹对应一个角色(管理员和用户)。在每个文件夹中,另一个web.config定义哪些角色可以访问此文件夹中的页面。
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="2"/>
<deny users="*"/>
</authorization>
</system.web>
</configuration>
问题是,如果管理员授予对Admin文件夹中分配的页面的用户角色(例如:ManageUsers.aspx)的访问权限,则拒绝用户角色访问此页面,因为只有Admin角色可以访问这些页面。
我想到的第一个解决方案是在运行时更改web.config,但每次更改web.config时都会重新启动应用程序。
第二个解决方案是列出每个角色可以从数据库表或XML文件访问的页面。如果我仍然使用表单身份验证,我不确定它是否会起作用。我应该在web.config文件中使用位置吗?或许还有另一种方法可以解决这个问题?我无法理解它。
提前感谢您的帮助!