我想检查一个sitecore项是否有任何访问权限,所以我想检查安全字段是否有值,即
item.Fields["__Security"].Value
这是检查项目是否具有访问权限的正确方法,还是有其他方法可以执行此操作?
答案 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