【问题标题】:Designing Permission based role system rather than directory based in asp.net在 asp.net 中设计基于权限的角色系统而不是基于目录
【发布时间】:2011-12-13 00:56:15
【问题描述】:

我正在使用 asp.net 2.0,并且为用户配置文件和角色使用不同的 Sql 数据库表架构。但是我的角色并不依赖于基于默认 Asp.net 成员身份组件假设的目录。我已经通过自定义配置文件提供程序实现了来自here. 的提示我设计的角色系统基于CanDeletePost, CanCreatePost, CanFlagPost 等权限集,管理员将为permission set 和这个will be role 创建一个名称。

示例:

角色名称 - 版主

权限 - CanDeletePost、CanCreatePost、CanFlagPost

问题:

  • 我应该如何使用 asp.net 实现这个基于权限的角色系统。
  • 成员身份与角色提供者有何不同。我还是不明白!!

【问题讨论】:

    标签: c# asp.net permissions membership roles


    【解决方案1】:

    您可以利用 SqlRoleProvider 来提供基于角色的权限。

    当您想要显示/使用需要特定角色的功能时,只需检查用户是否是该角色的成员 (page.User.Identity.IsInrole('moderator'))

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

    【讨论】:

    • 我也是这么想的。但是由于管理员可以name the role what ever he wants,这意味着我不知道一个角色将拥有哪些权限,所以我不能假设版主会提前拥有这些权限。我想做像User.Identity.CanDelete 这样的事情,你看权限是我事先知道的,但不是角色。
    • 那么只需在 Sql 表中提供操作列表,然后让管理员将一组特定操作的权限授予给定角色。
    猜你喜欢
    • 2021-09-16
    • 2014-05-01
    • 1970-01-01
    • 2014-08-02
    • 2016-11-09
    • 2020-12-18
    • 2018-05-29
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多