Sharepoint: Comment gérer par programmation SPFolder et SPListItem autorisations

Je veux savoir si je suis en manque de quelque chose.
Voici comment je ferais:
Pour SPFolder je voudrais changer les associtaed élément autorisations (SPFolder.L'élément).
Donc je suppose que la gestion de SPFolder autorisations se résume à la gestion de SPListItem autorisations.
Pour SPListItem je frist pause rôle d'héritage avec SPListItem.BreakRoleInheritance(), et ensuite travailler avec RoleAssignments collections ajouter et supprimer des rôles là.

Je me demande si RoleAssignments est la seule manière de gérer SPListItem les autorisations (en plus de l'héritage), et est-il un moyen de gérer les autorisations individuelles sans les rôles.
Il est également EffectiveBasePermissions bien, mais je ne suis pas sûr.

La question est donc de
est-il d'autres moyens (en plus de l'héritage) pour gérer SPListItem autorisations en dehors de la RoleAssignments collection?

@Edit: il y a aussi AllRolesForCurrentUser, mais je suppose que vous pouvez obtenir les mêmes informations à partir de la RoleAssignments bien, donc c'est juste pour des raisons de commodité.

@Edit: Que Flo notes dans sa réponse il y a un problème avec la configuration de

folder.ParentWeb.AllowUnsafeUpdates = true;

Et à l'aide de BreakRoleInheritance avec l'argument de "faux" (c'est à dire sans les autorisations de reproduction de l'objet parent).

folder.Item.BreakRoleInheritance(false);

BreakRoleInheritance ne fonctionnerait tout simplement pas à OBTENIR la demande que vous attendez d'après permettant dangereux mises à jour. Sans doute la méthode réinitialise AllowUnsafeUpdates retour à 'false'.

Une solution de contournement que je sais, c'est de supprimer manuellement les autorisations héritées après vous BreakRoleInheritance(vrai), comme ceci:

folder.Item.BreakRoleInheritance(false);
while(folder.Item.RoleAssignments.Count > 0) {
    folder.Item.RoleAssignments.Remove(0);
}

Merci!

InformationsquelleAutor axk | 2008-11-19