清除文档库中的文档角色

时间:2008-12-09 14:48:54

标签: sharepoint moss variable-assignment role

我一直在开发一个事件处理程序来清理MOSS中文档库的新项目的RolesAssignments。我已经搜索了一种可以有效清理所有RolesAssignments的方法,虽然我发现接缝的最佳方式是循环遍历RolesAssignments并逐个删除?是否有其他方法可以清除项目的所有RolesAssignments?

我用来清理RolesAssignments的代码如下所示:

    for (int i = ListItem.RoleAssignments.Count - 1; i >= 0; --i)
    { 
        ListItem.RoleAssignments.Remove(i); 
    }

有没有人对如何处理这个有任何想法?

3 个答案:

答案 0 :(得分:2)

您在问题正文中提供的示例是最正确的方法。 ResetRoleInheritance和BreakRoleInheritance可以做你需要的,但这是他们执行的操作的副作用。它们的目的不是删除RoleAssignments,而是操作角色继承。来自MSDN:

ResetRoleInheritance - “删除本地角色分配并从父对象恢复为角色分配。”

BreakRoleInheritance - “为项目创建唯一的角色分配,而不是从父级继承它们。”

如果角色继承已经中断并且您正在使用特定的角色分配,则应该使用循环删除它们,就像您在问题中一样。

答案 1 :(得分:1)

我有答案,把属性SPListItem.BreakRoleInheritance(false)打破角色继承并删除角色分配。

答案 2 :(得分:-1)

ResetRoleInheritance怎么样?这应该清除所有RoleAssignments。