在ASP.NET中的成员资格提供程序中分组角色

时间:2013-01-17 09:36:28

标签: asp.net asp.net-membership asp.net-roles

我已经问了类似问题before

我有基本用户角色:

-Admin
-Super User
-User

对于此角色,我管理网站权限。就像添加新用户或更改他们的个人资料一样。

此外,我的应用程序中有大量页面,例如

-Evaluation.aspx 
-Action.aspx 
-Properties.aspx

等等。 我希望能够为每个用户单独授予对每个页面的访问权限。

我考虑角色。 我将User添加到Evaluation角色,他可以浏览Evaluation.aspx

此方法中的每个页面都有自己的基于角色的访问模型。所以我将在我的会员提供者中担任更多角色。

-Evaluation
-Action
-Properties

然后,我可以在web.config中轻松设置网页访问政策。

<location path="Users.aspx">
    <system.web>
      <authorization>
        <allow roles="Admin, Super User"/>
        <deny users="*" />
      </authorization>
    </system.web>
  </location>

问题是aspnet_Roles中的Membership provider变得混乱。 每当我处理它们时,我都必须过滤角色。

例如,我有List<string>用户类型角色:

private readonly List<string>  UserTypeRoles = new List<string> {"Users", "Super User", "Admin"};

当我想将CheckBoxList控制与PagePermissionRoles绑定时,我必须像这样做:

private IEnumerable<string> UserSectionRolesGet(string userName)
{
    return Roles.GetRolesForUser(userName).Except(UserTypeRoles);
}

是否可以创建两种类型的角色:UserTypeRolesPagePermissionRole,以提供单独的存储和处理。

我真的不想覆盖现有的内置asp.net成员资格提供程序。

0 个答案:

没有答案