1

场景是:

我正在开发 vs2005 和 sql server2005 中基于角色的项目。我在数据库中定义了角色并添加了自定义角色提供程序。我有两个角色,如“管理员”和“用户”。我在项目中创建了两个文件夹,并根据角色将页面放置在这些文件夹(管理员和用户)中。现在我想在 web.config 中添加代码以根据角色访问页面,这意味着管理员只能看到 admin 文件夹页面,而用户只能看到用户文件夹页面。

如果我只为管理员定义一页,为具有角色授权的标签中的用户定义一页,那么它们可以正常工作。但是如果我在两个文件夹中都使用了多个页面,那么我需要在 web.config 文件中为这两个文件夹定义所有页面。

我使用了这样的位置标签

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

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

更新 我在我的网络配置中添加了这两个位置标签

<!--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> 
4

1 回答 1

1

以下内容不适合您吗?

<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>
于 2013-01-04T06:52:56.900 回答