我之前已经问过类似的问题
我有基本的用户角色:
-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
inMembership 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);
}
有没有办法创建两种类型的角色:UserTypeRoles
并PagePermissionRole
提供单独的存储和处理。
我真的不想覆盖现有的内置 asp.net 会员提供程序。