2015-08-19 96 views
4

我想檢查是否Sitecore的項目已應用的任何訪問權限或不那麼我想檢查是否安全領域具有即Sitecore的項目訪問權限

item.Fields["__Security"].Value 

值的是,這是正確的方式檢查一個項目是否具有訪問權限或者是否有另一種方式來執行此操作?

回答

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; 
    } 
} 
2

這樣的事情感覺更更API十歲上下

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

其實,看一看的Item.Security

+0

我可以檢查與用戶或角色,但在我的情況下,訪問權限我只需要知道是否有適用與否的訪問權限,是我提到的代碼正確的方法來檢查? –

+2

然後正如Jan正確地說 - item.Security.GetAccessRules() –