在我的AD模块的实现中,使用间接成员资格(role in role in role)具有性能影响。如果你有一个直接的成员资格(用户A在角色B中)模型,我没有看到很多性能问题,除非像@Patrck Perrone所提到的那样,你正在使用过滤器来拉回大量的用户。
我不确定哪个方向的安全性的典型建议是使用AD组来管理属于特定角色的用户,然后将这些AD组映射为Sitecore角色的成员。这样,您就可以将所有内容保护到Sitecore角色,并且您的用户将通过他们的AD组自动获得访问权限。
实施例:
- 在活动目录:用户周杰伦=>广告组“非线性\ Sitecore的作者的
- 在Sitecore的角色的成员: '非线性\ Sitecore的' 是'部件Sitecore的\作者”
- 在Sitecore的内容: '家' 项目工作流程固定 'Sitecore的\作者'
在上例中,所有sitecore \ Author成员的用户都可以在主页上工作。用户Jay在添加到AD Group的“非线性\ Sitecore作者”时,由于角色之间定义的关系将获得此访问权限。
这里的好处是,如果AD停机,或者您决定停止使用AD角色,则不必对您的内容重新应用安全性。您只需将您的AD用户直接添加到sitecore \ Author。
这对于本地开发人员或在笔记本本地工作的脱机开发人员无法连接到活动目录存储库也有帮助。他们仍然可以在与AD断开连接的情况下,使用本地Sitecore域用户设置所有内容安全和测试。