获取Sitecore角色的访问规则

时间:2017-05-02 23:58:36

标签: c# sitecore roles

是否可以查看Sitecore中特定角色的访问规则列表?也就是说,有没有办法以编程方式获取角色并查看它创建/删除/无论访问哪些项目?

我的解决方法是从群组中提取用户并查看其访问权限......但我希望可能有更简洁的方法来提取群组本身的访问权限。

1 个答案:

答案 0 :(得分:0)

  

是否可以查看Sitecore中特定角色的访问规则列表?

Access rights are stored in items因此,为了获得所有角色访问规则,您必须扫描数据库中的所有项目(如Access Viewer所做的那样)。

对于每个项目,您可以检查是否为特定帐户(用户或角色)和访问权限配置了任何访问权限:

AccessRuleCollection accessRules = item.Security.GetAccessRules();
AccessRightCollection accessRights = AccessRightManager.GetAccessRights();
foreach (AccessRight accessRight in accessRights)
{
    AccessPermission accessPermission =
        accessRules.Helper.GetAccessPermission(account, accessRight, PropagationType.Entity);

    if (accessPermission != AccessPermission.NotSet)
    {
        // do smth here
    }
}