Pulisci i ruoli del documento in una raccolta documenti
-
20-08-2019 - |
Domanda
Sto sviluppando un gestore di eventi per ripulire i RolesAssignments del nuovo elemento di una raccolta documenti in MOSS. Ho & # 8217; ho cercato un metodo in grado di pulire in modo efficiente tutti i RolesAssignments, anche se il modo migliore in cui ho trovato le cuciture per passare in rassegna i RolesAssignments ed eliminarlo uno per uno? C'è un altro modo per pulire tutti i RolesAssignments per un articolo?
Il codice I & # 8217; m che utilizzo per la pulizia di RolesAssignments è simile al seguente:
for (int i = ListItem.RoleAssignments.Count - 1; i >= 0; --i)
{
ListItem.RoleAssignments.Remove(i);
}
Qualcuno ha qualche idea su come gestirlo?
Soluzione 2
Ho la risposta, metto la proprietà SPListItem.BreakRoleInheritance (false) per interrompere l'eredità del ruolo e rimuovere le assegnazioni di ruolo.
Altri suggerimenti
L'esempio che hai fornito nel corpo della tua domanda è il modo più corretto per farlo. ResetRoleInheritance e BreakRoleInheritance possono fare ciò di cui hai bisogno, ma questo è l'effetto collaterale delle operazioni che eseguono. Il loro scopo non è rimuovere i RoleAssignments, ma piuttosto operare sull'ereditarietà dei ruoli. Da MSDN:
ResetRoleInheritance - " Rimuove le assegnazioni di ruolo locali e ripristina le assegnazioni di ruoli dall'oggetto padre. "
BreakRoleInheritance - " Crea assegnazioni di ruoli univoche per l'elemento anziché ereditarle da un genitore. "
Se l'ereditarietà dei ruoli è già stata interrotta e si stanno utilizzando assegnazioni di ruoli specifiche, è necessario rimuoverle utilizzando un ciclo come nella propria domanda.
Che ne dici di ResetRoleInheritance? Questo dovrebbe cancellare tutti i RoleAssignments.