Permissions 分层组权限理论/资源?

Permissions 分层组权限理论/资源?,permissions,theory,usergroups,Permissions,Theory,Usergroups,有人知道一些与建立Hierarchical用户帐户系统相关的好资源吗?我目前正在设置一个,正在努力解决一些更复杂的逻辑(尤其是在确定权限方面)。我希望我能找到一些资源来帮助我 一些背景: 我正在为一个允许嵌套组层次结构的web CMS构建一个用户帐户系统。可以允许/拒绝每个组的读、写、添加和删除权限(对于该组可以显式访问,也可以由其父组之一隐式访问)。似乎这还不够复杂,该系统还允许用户成为多个组的成员这就是我被困的地方。我已经设置好了所有内容,但我正在为确定给定用户的任务的实际逻辑而苦苦挣扎。查

有人知道一些与建立Hierarchical用户帐户系统相关的好资源吗?我目前正在设置一个,正在努力解决一些更复杂的逻辑(尤其是在确定权限方面)。我希望我能找到一些资源来帮助我

一些背景:
我正在为一个允许嵌套组层次结构的web CMS构建一个用户帐户系统。可以允许/拒绝每个组的读、写、添加和删除权限(对于该组可以显式访问,也可以由其父组之一隐式访问)。似乎这还不够复杂,该系统还允许用户成为多个组的成员这就是我被困的地方。我已经设置好了所有内容,但我正在为确定给定用户的任务的实际逻辑而苦苦挣扎。

查看列表中的权限。它允许用户创建和管理自己的组,同时有选择地分配管理权限和ACL。您可能会发现,许多烦人的细节已经在他们的模型中为您解决了

编辑:这里有一个更好的AFS文档链接:

以下是关于组的部分:


CakePHP手册对访问控制列表的工作原理进行了出色的描述


我以前确实做过这件事,而且它的实现非常简单。您将要查看SecurityPermission类

[

我以前使用过XML(我不确定是否还会这样做),并通过CLR存储过程将该XML作为权限列表存储在SQL server中的XML列中然后权限实际上是代码中的一个枚举。每个权限都是SecurityPermission类的一个新实现(链接在上面)。用户被绑定到SQL server中定义的组,然后当用户被添加/删除到组中时,XML文档将被更新,以反映他们所属的组

用户登录后,用户凭据将加载到应用程序存储(会话),然后进行相应的访问。当需要进行授权时,应用程序存储中的XMl将通过“FromXML”下拉加载到SecurityPermission中方法。此时,我将使用以下方法确定用户是否具有权限:

  • 要求
  • 相交
  • 联合
  • 不受限制
  • 发行
等等等等等等

在执行请求之后,我能够根据我在SecurityPermissions中实现安全例程的方式来确定调用方是否具有访问权限

同样,这漏掉了很多细节,但这应该会让你走上正确的道路


还可以查看此名称空间:[2]:“System.Security.Permissions”

将给定组的权限集表示为位掩码。或者,将位掩码合并在一起将得到结果权限集

@Alex的更新:

我三年前写下了这个答案,但我相信我是在暗示以下内容

从问题

嵌套的组层次结构。可以允许/拒绝每个组访问 读、写、添加和删除(明确针对该组,或 这似乎并不复杂 足够了,该系统还允许用户成为多个组织的成员 团体。--这就是我被困的地方。我已经准备好了一切,但是 我正在为确定一个项目的任务的实际逻辑而挣扎 给定用户

分配与系统中组(或角色)的总权限集匹配的位掩码:

e、 g.
00
(此处使用两位保持简单!)

第一位授予
权限A
,第二位授予
权限B

现在假设A组授予以下权限集:
01

…并假设B组授予以下权限集:
10

要获取任意组中用户的结果权限集,可以对权限集位掩码执行逻辑

Permission set for Group A   01
Permission set for Group B   10 OR 
                             ----
Resultant permission set     11 (i.e. both permission A and B are conferred)

我不知道提问者系统的细节,但这里概述的系统可以通过不同的逻辑运算符进行扩充,以实现不同的群体组成行为。

Hi@Donn这看起来很有趣,听起来像是一篇很棒的博客文章。我注意到几年前你发布了这篇文章,根据你的经验,你有什么需要改进的吗现在会采取不同的方法吗?嗨@Ben,这看起来很有趣,你能用一个小例子详细说明一下吗?或者是一个有用资源的链接吗?如果它们仍然存在,你能更新这些链接吗?