Partager via


RoleAssignmentCollection - Classe

Représente une collection d'objets RoleAssignment qui définit les attributions de rôle pour chaque objet sécurisable.

Hiérarchie d’héritage

System.Object
  Microsoft.SharePoint.Client.ClientObject
    Microsoft.SharePoint.Client.ClientObjectCollection
      Microsoft.SharePoint.Client.ClientObjectCollection<RoleAssignment>
        Microsoft.SharePoint.Client.RoleAssignmentCollection

Espace de noms :  Microsoft.SharePoint.Client
Assemblys :   Microsoft.SharePoint.Client.Silverlight (dans Microsoft.SharePoint.Client.Silverlight.dll);  Microsoft.SharePoint.Client.Phone (dans Microsoft.SharePoint.Client.Phone.dll)  Microsoft.SharePoint.Client (dans Microsoft.SharePoint.Client.dll)

Syntaxe

'Déclaration
Public NotInheritable Class RoleAssignmentCollection _
    Inherits ClientObjectCollection(Of RoleAssignment)
'Utilisation
Dim instance As RoleAssignmentCollection
public sealed class RoleAssignmentCollection : ClientObjectCollection<RoleAssignment>

Remarques

Utilisez la propriété RoleAssignments de la classe SPPermissionInfo, SecurableObject, List, ListItemou Web , pour renvoyer la collection d'attributions de rôle pour l'objet donné.

Pour créer une attribution de rôle qui n'a aucune liaisons de définition de rôle, utilisez un constructeur RoleAssignment . Pour ajouter des définitions de rôle lié à une attribution de rôle, utilisez la méthode ImportRoleDefinitionBindings . Utilisez la méthode Add(RoleAssignment) de la classe RoleAssignmentCollection pour ajouter une attribution de rôle à la collection d'attributions de rôle pour l'objet.

Utiliser un indexeur pour renvoyer un seul élément à partir de la collection de sites. Par exemple, si la collection de sites est affectée à une variable nommée myRoleAssignments, suivez myRoleAssignments[index] c# ou myRoleAssignments(index) dans Visual Basic, où index représente le numéro d'index de l'élément dans la collection de sites ou une chaîne contenant le nom de la définition de rôle.

Exemples

Cet exemple de code crée un nouveau niveau d'autorisation et ajoute un utilisateur dans la liste annonces à ce niveau d'autorisation.

using System;
using Microsoft.SharePoint.Client;

namespace Microsoft.SDK.SharePointFoundation.Samples
{
    class RoleAssignmentCollectionExample
    {
        static void Main()
        {
            string siteUrl = "http://MyServer/sites/MySiteCollection";

            ClientContext clientContext = new ClientContext(siteUrl);
            Site collSite = clientContext.Site;
            Web site = clientContext.Web;

            // Set up permissions.
            BasePermissions permissions = new BasePermissions();
            permissions.Set(PermissionKind.ViewListItems);
            permissions.Set(PermissionKind.AddListItems);
            permissions.Set(PermissionKind.EditListItems);
            permissions.Set(PermissionKind.DeleteListItems);

            // Create a new role definition.
            RoleDefinitionCreationInformation rdcInfo = new RoleDefinitionCreationInformation();
            rdcInfo.Name = "Manage List Items";
            rdcInfo.Description = "Allows a user to manage list items";
            rdcInfo.BasePermissions = permissions;
            RoleDefinition roleDef = collSite.RootWeb.RoleDefinitions.Add(rdcInfo);

            // Create a new RoleDefinitionBindingCollection object.
            RoleDefinitionBindingCollection collRDB = new RoleDefinitionBindingCollection(clientContext);
            // Add the role to the collection.
            collRDB.Add(roleDef);

            // Get the list to work with and break permissions so its permissions can be managed directly.
            List targetList = site.Lists.GetByTitle("Announcements");
            targetList.BreakRoleInheritance(true, false);

            // Get the RoleAssignmentCollection for the target list.
            RoleAssignmentCollection collRoleAssign = targetList.RoleAssignments;
            // Add the user to the target list and assign the user to the new RoleDefinitionBindingCollection.
            RoleAssignment rollAssign = collRoleAssign.Add(site.CurrentUser, collRDB);

            clientContext.ExecuteQuery();

            Console.WriteLine("Security modified");
        }
    }
}

Cohérence de thread

Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.

Voir aussi

Référence

RoleAssignmentCollection - Membres

Microsoft.SharePoint.Client - Espace de noms