我已经问了类似问题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);
}
是否可以创建两种类型的角色:UserTypeRoles
和PagePermissionRole
,以提供单独的存储和处理。
我真的不想覆盖现有的内置asp.net成员资格提供程序。