Sitecore项目访问权限

时间:2015-08-19 06:57:14

标签: sitecore

我想检查一个sitecore项是否有任何访问权限,所以我想检查安全字段是否有值,即

item.Fields["__Security"].Value

这是检查项目是否具有访问权限的正确方法,还是有其他方法可以执行此操作?

2 个答案:

答案 0 :(得分:5)

是的,在__Security字段中存储了权利。

您可以使用:item.Security.GetAccessRules();

var accessRules = item.Security.GetAccessRules();
if (accessRules != null)
{
    foreach (var rule in accessRules)
    {
        var name = rule.Account.Name;
        var comment = rule.AccessRight.Comment;
        var permiss = rule.SecurityPermission;
    }
}

答案 1 :(得分:2)

这种感觉更像是API-ish

foreach(Role role in RolesInRolesManager.GetAllRoles())
{
    bool hasReadAccess= itemUnderTest.Security.CanRead(role);
}

事实上,请看一下Item.Security

的所有方法