【问题标题】:Sitecore security - combining rolesSitecore 安全性 - 组合角色
【发布时间】:2015-08-25 20:55:57
【问题描述】:

有没有一种方法可以组合 Sitecore 项目的访问权限?

例如,我有一个页面,我想将其锁定给属于两个不同角色的用户,而不仅仅是一个角色,而只有一个角色的用户应该被拒绝访问。

我知道您可以在角色中拥有角色,但想知道是否有更简单的方法来实现这一点?

我使用的是 Sitecore 7.2。

【问题讨论】:

  • 角色功能中的角色听起来与您所追求的功能完全一样。你不喜欢它的什么?
  • 我想您正在使用 Webforms?我们在谈论多少页,权限继承(从父级到子级)是否重要?即您是否还尝试删除对整个内容分支的访问权限?

标签: security sitecore


【解决方案1】:

如果您尝试在代码中检查这一点,您可以使用

轻松完成
var user = AuthenticationManager.GetActiveUser();
return user.IsInRole("Role1") && user.IsInRole("Role2") ? "Granted":"Denied";

但是,如果您要在 Sitecore Security 中针对某个项目实现此目的,则将分配这 2 个角色的 AND。例如:如果我在 Role1 中允许访问某个项目,但在 Role2 中拒绝,则具有角色 1 和 2 的用户将被拒绝访问。

【讨论】:

  • 谢谢,没有代码就没有办法实现吗?安全编辑器中没有什么可以做的吗?
  • 我不知道有任何解决方案可以让您这样做。在我看来,您应该保持角色/访问简单和规范化。为了简单起见,我更喜欢不混合角色。我也会推荐给你。
【解决方案2】:

通过Security Editor 实现它的一种方法是利用Sitecore 的Roles in Roles 功能。

基本上,您需要在Role Manager 中创建一个新角色,其中包含两个角色,角色 A 和角色 B。在 Role Manager 中选择您的新角色,然后单击 Member Of 按钮。在模式中单击 Add 并选择此 New Role 需要包含的两个角色。

Security Editor 中选择新角色并将读取、写入、创建等权限分配给所需的Items

现在,当用户访问这些 Items 时,他们必须拥有角色 A 和角色 B 才能获得访问权限 - 他们不需要将新角色分配给他们的帐户

如果您要管理大量角色以及这些角色的组合,那么手动创建这些组合将非常耗时。

【讨论】:

  • 也许有人可以建议一种方法来自动化这些角色创建
  • 我认为这行不通,没有办法强制他们必须是 BOTH 组的成员,角色中的角色仍然只会检查他们是 ANY 组的成员。
  • 啊,这有点痛苦。始终将角色中的角色视为逻辑而不是角色的简单集合。如果可以做任何自定义来实现使用 Roles in 这样的角色,可能值得一看。
  • 啊。是否有任何模块或任何其他方式来实现它?
【解决方案3】:

解决此问题的最简单方法是定义具有适当访问权限的新角色,并手动或通过脚本将相关用户分配给该角色。这使您的访问权限保持透明。您可以编写代码解决问题,但最终可能会造成管理员噩梦,几乎不可能看到哪些角色和用户可以访问哪些项目。例如。在查看其中一个角色或查看具有其中一个或两个角色的用户时,您希望在 Access Viewer 中看到什么?以编程方式分配访问权限和以编程方式评估它们之间存在很大差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 2014-10-23
    • 2015-06-27
    • 2012-09-06
    • 2016-03-14
    • 2013-03-21
    相关资源
    最近更新 更多