gpt4 book ai didi

security - Sharepoint:如何以编程方式管理 SPFolder 和 SPListItem 权限

转载 作者:行者123 更新时间:2023-12-04 15:05:51 26 4
gpt4 key购买 nike

我想知道我是否遗漏了什么。
这是我将如何做到的:
对于 SPFolder,我会更改关联项目的权限 (SPFolder.Item)。
所以我想管理 SPFolder 权限归结为管理 SPListItem 权限。
对于 SPListItem,我首先会使用 SPListItem.BreakRoleInheritance() 来打破角色继承。然后使用 RoleAssignments集合在那里添加和删除角色。

我想知道 RoleAssignments 是否是管理 SPListItem 权限(除了继承)的唯一方法,是否有一种方法可以在没有角色的情况下管理单个权限。
还有 EffectiveBasePermissions 属性,但我不确定。

所以问题是
除了 RoleAssignments 集合之外,还有其他方法(除了继承)来管理 SPListItem 权限吗?

@编辑:还有 AllRolesForCurrentUser,但我想您可以从 RoleAssignments 属性获得相同的信息,所以这只是为了方便起见。

@编辑:正如 Flo 在他的回答中指出的那样,设置存在问题

folder.ParentWeb.AllowUnsafeUpdates = true;

并使用 BreakRoleInheritance参数为“false”(即没有复制父对象的权限)。
folder.Item.BreakRoleInheritance(false);
BreakRoleInheritance在允许不安全的更新后,根本不会像您期望的那样处理 GET 请求。大概是该方法重置了 AllowUnsafeUpdates回到“假”。

我知道的一种解决方法是在 BreakRoleInheritance(true) 之后手动删除继承的权限,如下所示:
folder.Item.BreakRoleInheritance(false);
while(folder.Item.RoleAssignments.Count > 0) {
folder.Item.RoleAssignments.Remove(0);
}

谢谢!

最佳答案

你说得很对。我相信 RoleAssignments 确实是直接管理权限的唯一机制。这是一个 post这显示了如何做到这一点的快速示例。我也用过这些 two posts当我做一些更复杂的事情时。

关于security - Sharepoint:如何以编程方式管理 SPFolder 和 SPListItem 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/302279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com