当前位置:  开发笔记 > 程序员 > 正文

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

如何解决《Sharepoint:如何以编程方式管理SPFolder和SPListItem权限》经验,为你挑选了0个好方法。

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

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

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

@Edit:还有AllRolesForCurrentUser,但我想你可以从RoleAssignments属性获得相同的信息,所以这个只是为了方便.

@Edit:正如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);
}

谢谢!

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有