質問

私は、MOSSのドキュメントライブラリの新しい項目のRolesAssignmentsをクリーンアップするイベントハンドラを開発してきました。私は縫い目を見つけた最良の方法は、RolesAssignmentsをループすることと一つ一つを削除することが、私は、効率的にすべてのRolesAssignmentsをきれいにできた方法を探してきましたか?項目のすべてRolesAssignmentsをきれいにする別の方法はありますか?

私はRolesAssignmentsを洗浄するために使用しているコードは次のようになり

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

誰もこれに対処する方法上の任意のアイデアを持っていますか?

役に立ちましたか?

解決 2

私は、役割の継承を解除し、役割の割り当てを削除するにはpropertie SPListItem.BreakRoleInheritance(false)を入れ、答えを持っています。

他のヒント

あなたがあなたの質問の本体内に与えてくれた例はこれを行うには、最も正しい方法です。 ResetRoleInheritanceとBreakRoleInheritanceは何が必要行うことができますが、これは、彼らが実行する操作の副作用です。彼らの目的は、RoleAssignmentsを削除するのではなく、役割の継承を操作することではありません。 MSDNから:

ResetRoleInheritance に - 「を削除ローカル・ロールの割り当てと、親オブジェクトからの役割割り当てに戻ります。 "

BreakRoleInheritance に - 「ユニークを作成します。アイテムのためではなく、親からそれらを継承する役割の割り当て。 "

役割の継承が既に壊れていると、あなたが特定の役割の割り当てを使用している場合は、あなたの質問に持っているように、

、あなたはループを使用してそれらを削除する必要があります。

どのようにResetRoleInheritanceは?これはRoleAssignmentsのすべてをクリアする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top