如何在 SenseNet 中覆盖用户权限的组权限?

How to override groups permission over users permission in SenseNet?

我使用的是 SenseNet V 6.3 社区版。

我正在执行这些步骤:

  1. 我已将节点 p 的权限设置为用户 xyz@xyz.com

  2. 通过Node.LoadNode()从用户xyz@xyz.com访问节点p(成功)

  3. 我已将节点 p 的拒绝权限设置为用户 xyz@xyz.com

  4. 我已经设置允许节点 p 的权限到成员为 xyz@xyz.com 的组

  5. 通过 Node.LoadNode() 从用户 xyz@xyz.com 访问节点 p(错误)

我收到 Access Denied 错误。

似乎没有覆盖用户权限的组权限,或者似乎没有覆盖最新的权限。

我怎样才能做到这一点?

这是设计使然:deny 权限始终强于 allow。因此,如果您为用户设置显式拒绝,则您不能允许通过组进行相同的操作。设置权限的时间或者是组还是用户都无所谓:规则是拒绝覆盖允许。

这就是为什么使用 deny 应该是最后的选择。最好删除 用户的允许权限,而不是通过组允许它。

有关破坏权限、本地权限和整个权限系统的详细信息,请访问this article