根据用户成员阻止web.config中的页面

时间:2011-01-15 02:42:54

标签: asp.net web-config asp.net-membership

我在asp.NET中使用自定义用户成员资格,因此用户是包含成员的对象。用户的一个成员是“IsCompanyAdmin”。 我只为公司管理员提供了一些aspx页面。 有没有办法阻止这些页面来自非管理员用户使用web.config?

2 个答案:

答案 0 :(得分:1)

在ASP.Net中,限制访问配置中页面的标准公平是通过Location element

以下示例将限制除Admin用户角色以外的任何人。但是,这假定您已配置RoleProvider

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

several examples如何实现您自己的自定义角色提供程序,但如果您可以使用它,那么我会使用内置的SqlRoleProvider

答案 1 :(得分:1)

如果我正确理解您的问题,您不必在数据库中拥有角色。

可以在CustomRoleProvider中执行的操作GetRolesForUser方法返回一个字符串[],该字符串将包含取决于您的用户的角色。授权模块将使用这些角色。所以说你的属性IsCompanyAdmin =“true”然后你将“Admin”添加到字符串[]。

然后,Josh提供的位置建议应该像在数据库中具有“管理员”角色一样工作。