我想知道我是否遗漏了什么。
我会这样做:
对于SPFolder,我将更改关联项的权限(SPFolder.item)。
因此,我认为管理SPFolder权限可以归结为管理SPListItem权限。
对于SPListItem,我将首先使用
SPListItem.BreakRoleInheritance()
RoleAssignments
我想知道RoleAssignments是否是管理SPListItem权限(除了继承)的唯一方法,是否有一种方法可以管理没有角色的个人权限。
还有EffectiveBasePermissions属性,但我不确定。
除了RoleAssignments集合之外,还有其他方法(除了继承)管理SPListItem权限吗?
@编辑:
还有AllRolesForCurrentUser,但我想您可以从RoleAssignments属性获得相同的信息,所以这一个只是为了方便。
@编辑:
正如弗洛在他的回答中指出的,设置有问题
folder.ParentWeb.AllowUnsafeUpdates = true;
BreakRoleInheritance
参数为“false”(即不复制父对象的权限)。
folder.Item.BreakRoleInheritance(false);
破环率
在允许不安全的更新后,GET请求将无法正常工作。想必该方法会重置
AllowUnsafeUpdates
回到“假”。
我知道的一种解决方法是在打破RoleInheritance(true)后手动删除继承的权限,如下所示:
folder.Item.BreakRoleInheritance(false);
while(folder.Item.RoleAssignments.Count > 0) {
folder.Item.RoleAssignments.Remove(0);
}