Pour définir les autorisations pragmatiquement que vous devez faire ce qui suit.
1) Casser Rôle héritage de l'élément 2) Ajouter la nouvelle attribution de rôle
Pour briser l'héritage de rôle de rupture d'un élément que vous appelez la méthode BreakRoleInheritance sur l'élément, en passant vrai copiera les autorisations actuelles pour la liste à l'article. Vous devez ensuite obtenir la collection d'attributions de rôles et ajouter une nouvelle attribution de rôle à celle-ci. L'attribution de rôle est créée pour un SPPrincipal et a un SPRoleDefinition lié à celui-ci.
SPRoleAssignmentCollection rolesAssignments = item.RoleAssignments;
SPRoleAssignment userRoleAssignment = new SPRoleAssignment(principal);
userRoleAssignment.RoleDefinitionBindings.Add(roleDefinition);
rolesAssignments.Add(userRoleAssignment);
Pour récupérer une définition de rôle, vous pouvez aller à la propriété SPWeb actuelle FirstUniqueRoleDefinitionWeb si vous gardez les customisations qui ont été apportées à vos autorisations sites, puis utilisez Collection Définitions Le rôle du SPWeb. (Je ne suis pas trop sûr du motif d'élimination pour la propriété FirstUniqueRoleDefinitionWeb, si vous utilisez SPContext Ne le disposer)
if (web.FirstUniqueRoleDefinitionWeb != null)
{
using (SPWeb firstUniqueRoleDefinitionWeb = web.FirstUniqueRoleDefinitionWeb)
{
return firstUniqueRoleDefinitionWeb.RoleDefinitions[roleName];
}
}
return web.RoleDefinitions[roleName];
espoir que cela vous aide dans la bonne direction
Merci pour votre réponse. Mais j'ai oublié de mentionner que je veux réaliser cela par programme. –
Ok, j'ai ajouté un exemple de code. –
Merci beaucoup, je vais l'essayer après avoir ajouté ce commentaire;) –