我正在尝试从项目中删除特定角色.现在我分配了3个角色."Everyone","sitecore\author","sitecore\developer".如何删除"Everyone"和"sitecore\author".到目前为止,我已经尝试过这个但是它没有用.
public static void ClearSecurityRoles(this Item item)
{
var accessrules = item.Security.GetAccessRules();
var role = Sitecore.Security.Accounts.Role.FromName("Everyone");
accessrules.Helper.RemoveExactMatches(role,AccessRight.Any,PropagationType.Any);
item.SaveSecurityAccessRules(accessrules);
}
public static void SaveSecurityAccessRules(this Item item, AccessRuleCollection accessRules)
{
item.Editing.BeginEdit();
item.Security.SetAccessRules(accessRules);
item.Editing.EndEdit();
}
Run Code Online (Sandbox Code Playgroud)
当我使用accessrules.clear()
它删除所有角色,但我希望能够删除只有两个.我怎么做?
小智 1
你可以这样做:
Role role = Role.FromName("Everyone");
AccessRuleCollection accessRules = item.Security.GetAccessRules();
foreach (var accessRight in _accessRights)
{
AccessRight right = AccessRight.FromName(accessRight.Value);
accessRules.Helper.RemoveExactMatches(role, right, PropagationType.Any);
}
item.Security.SetAccessRules(accessRules);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
654 次 |
最近记录: |