我一直在开发一个事件处理程序来清理MOSS文档库的新项目的RolesAssignments。我搜索过,可以有效地清除所有的RolesAssignments的方法,但最好的方式,我发现接缝通过RolesAssignments是环和逐个删除?有另一种方式来清理所有RolesAssignments一个项目?

我使用用于清洁RolesAssignments的代码看起来是这样的:

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

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

有帮助吗?

解决方案 2

我找到了答案,把propertie SPListItem.BreakRoleInheritance(假)打破角色继承和删除角色分配。

其他提示

你的问题的体内给出的例子是这样做的最正确的方法。 ResetRoleInheritance和BreakRoleInheritance可能会做你需要什么,但是这是他们执行的操作的副作用。他们的目的不是为了除去RoleAssignments,但角色继承而操作。从MSDN:

ResetRoleInheritance - “删除本地角色分配和恢复到从父对象角色分配“。

BreakRoleInheritance - “创建独特该项目角色分配,而不是从一个亲本继承他们。“

如果角色继承已被打破,你使用特定的角色分配,你应该使用循环删除它们,你在你的问题有。

如何ResetRoleInheritance?这应该清除所有的RoleAssignments的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top