【问题标题】:Customizing members rights, without changing a roles right - .NET自定义成员权限,而不更改角色权限 - .NET
【发布时间】:2011-12-02 05:57:09
【问题描述】:

我目前正在计划一个在安全方面存在一些复杂问题的项目。 ASP.NET内置的成员资格和角色功能,是否可以自定义特定的用户权限,从而不同于用户所属角色的权限?

情况如下: 该系统由不同的商店组成。商店有不同角色的成员; Owner、Manager、Employee、Accountant等。一些一般性的规则是关于角色的权利,但在特定的商店,规则需要不同于不同角色的正常规则。

示例: Shop ABC 有 3 名员工担任员工角色。 2 名员工需要 Employee-role 的权限,但最后一名员工的权限比角色示意图所告诉的要少/多。

如果我们添加一个 Employee-role 中的每个人都需要访问的新模块,它也需要应用于具有自定义权限的人。

我无法在有关该主题的文献或文档中找到这种情况的答案。

【问题讨论】:

    标签: asp.net security asp.net-membership membership-provider provider


    【解决方案1】:

    理想情况下,角色是不同的,并授予具有该角色的用户一组权利或特权。我认为您对群组感到困惑。

    为了便于管理,可以将用户聚集成组。然后可以将用户和组分配给授予他们某些权限的角色。

    因此,在您的示例中,您应该为要分配的每组权限设置不同的角色。

    例如

    一个简单的例子。您不需要使用组,但它可以更轻松地一次性将角色分配给大量用户。

    组:所有用户 -> 任何用户,无论权限如何。最基本的群体 组:新手 -> 新用户 组:完整用户 -> 不是新手的用户 组:经理 -> 任何作为经理的用户

    角色:标准 -> 基本角色。包括权限:访问系统,查看订单,成员:所有用户 角色:高级用户 -> 权限:添加订单、编辑订单,成员:完全用户 角色:admins -> 权限删除订单,成员:managers

    【讨论】:

    • 问题是这样的解决方案最终会产生的角色数量。我们有很多客户,有很多员工,他们中的许多人需要能够根据用户自定义权限。将商店视为群体以及属于这些群体的用户是否正确?
    • 您只需要为权限不同的地方创建角色。您最终可能会得到很多角色,但这比即时更改角色拥有的权利要好。我在上面添加了一个示例
    • 有道理,但数千个角色听起来很难管理。我猜,使用 Groups 来定义一组用户,而不是角色,应该会给我们一些帮助。如果我们稍后想要为所有店主添加权限,我们可能有数千个不同的角色需要修改。只有当我们有一个称为 shopowners 的组,并且该组中的每个人都只属于一个角色,才有可能更改描述 shopowners 权限的所有角色的权限。遗憾的是,我们系统中的用户通常会拥有多个角色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多