如何在webconfig中根据c# vs2005中的角色访问文件夹's页面

本文关键字:文件夹 访问 角色 页面 vs2005 webconfig | 更新日期: 2023-09-27 17:50:33

场景如下:

我正在vs2005和sql server2005中进行基于角色的项目。我在数据库中定义了角色并添加了自定义角色提供程序。我有两个角色,像"管理员"answers"用户"。我在项目中创建了两个文件夹,并根据角色将页面放在这些文件夹(admin和user)中。现在我想在web中添加代码。根据角色配置页面访问权限,即admin只能看到admin文件夹页面,user只能看到user文件夹页面。

如果我只定义一个页面的管理员和一个页面的用户在标签与角色授权,那么他们工作良好。但是如果我在两个文件夹中使用了多个页面,那么我需要在web中定义所有页面。

我使用了location标签,像这样

<location path="user/userpage1.aspx">
    <system.web>
      <authorization>
        <allow roles="user"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

是否有可能为文件夹而不是页面中的标签分配角色。如果是,请给出一些有价值的想法来实现它。

我在我的web配置

中添加了这两个位置标签
<!--allow admin role members-->
  <location path="admin/adminpage1.aspx">
    <system.web>
      <authorization>
        <allow roles="admin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>
<!--allow user role members-->
  <location path="user/userpage1.aspx">
    <system.web>
      <authorization>
        <allow roles="user"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location> 

如何在webconfig中根据c# vs2005中的角色访问文件夹's页面

下面的操作不适合您吗?

<location path="folder">
    <system.web>
        <authorization>
            <allow roles="user" />
            <deny users="*" />
        </authorization>
    </system.web>
</location>

在以下配置中为我工作:

<location path="Content/Images">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>
<system.web>
    <authorization>
        <allow roles="Admin,Manager,Client" />
        <deny users="?" />
    </authorization>
</system.web>

允许匿名访问,而通常不允许。


我们可以在子文件夹中放入一个单独的与位置无关的Web.config:

<system.web>
    <authorization>
        <allow roles="user" />
        <deny users="*" />
    </authorization>
</system.web>