C# 在asp.net中设计基于权限而不是基于目录的角色系统

C# 在asp.net中设计基于权限而不是基于目录的角色系统,c#,asp.net,permissions,membership,roles,C#,Asp.net,Permissions,Membership,Roles,我使用的是asp.net 2.0,对于用户配置文件和角色有不同的Sql数据库表模式。但是,我的角色不依赖于默认Asp.net成员资格组件假定的基于目录的角色。我已由自定义配置文件提供程序实现,其中包含来自我设计的角色系统的提示,该系统基于一组权限,如CandeletPost、CanCreatePost、CanFlagPost,管理员将为权限集创建一个名称,该将成为角色 例子: Rolename-主持人 权限-CandeletPost、CanCreatePost、CanFlagPost 问题:

我使用的是asp.net 2.0,对于用户配置文件和角色有不同的Sql数据库表模式。但是,我的角色不依赖于默认Asp.net成员资格组件假定的基于目录的角色。我已由自定义配置文件提供程序实现,其中包含来自我设计的角色系统的提示,该系统基于一组权限,如
CandeletPost、CanCreatePost、CanFlagPost
,管理员将为
权限集创建一个名称,该
将成为角色

例子: Rolename-主持人

权限-CandeletPost、CanCreatePost、CanFlagPost

问题:
  • 如何使用asp.net实现这个基于权限的角色系统
  • 成员资格与角色提供程序有何不同。我还是不明白
您可以利用SqlRoleProvider提供基于角色的权限

每当您想要显示/使用需要特定角色的函数时,只需检查该用户是否是该角色的成员(page.user.Identity.IsInrole(“主持人”))


成员资格和角色提供程序之间的区别在于身份验证和授权之间的区别。会员资格提供者关心的是身份验证,而角色提供者关心的是授权。

我也有同样的想法。但是,由于管理员可以
根据角色的需要为其命名,这意味着我不知道角色将拥有哪些权限,因此我不能假设主持人将提前拥有这些权限。我想做一些类似于
User.Identity.CanDelete
的事情。你看,权限是我事先知道的,但不是角色。然后,只需在Sql表中提供一个操作列表,然后让管理员将特定操作集的权限授予给定角色。