Compartir a través de


Clase RoleAssignmentCollection

Representa una colección de objetos RoleAssignment que define todas las asignaciones de roles para cada objeto protegible.

Jerarquía de la herencia

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

Espacio de nombres:  Microsoft.SharePoint.Client
Ensamblados:   Microsoft.SharePoint.Client.Silverlight (en Microsoft.SharePoint.Client.Silverlight.dll);  Microsoft.SharePoint.Client.Phone (en Microsoft.SharePoint.Client.Phone.dll)  Microsoft.SharePoint.Client (en Microsoft.SharePoint.Client.dll)

Sintaxis

'Declaración
Public NotInheritable Class RoleAssignmentCollection _
    Inherits ClientObjectCollection(Of RoleAssignment)
'Uso
Dim instance As RoleAssignmentCollection
public sealed class RoleAssignmentCollection : ClientObjectCollection<RoleAssignment>

Comentarios

Utilice la propiedad RoleAssignments de la clase SPPermissionInfo, SecurableObject, List, ListItemo Web , para devolver la colección de asignaciones de roles para el objeto dado.

Para crear una asignación de roles que no tiene enlaces de definición de rol, use un constructor RoleAssignment . Para agregar definiciones de función enlazados a una asignación de roles, use el método de ImportRoleDefinitionBindings . Use el método Add(RoleAssignment) de la clase RoleAssignmentCollection para agregar una asignación de roles a la colección de asignaciones de roles para el objeto.

Utilice un indizador para devolver un solo elemento de la colección. Por ejemplo, si la colección se asigna a una variable denominada myRoleAssignments, use myRoleAssignments[index] en C# o myRoleAssignments(index) en Visual Basic, donde index es el número de índice del elemento de la colección o una cadena que contiene el nombre de la definición de función.

Ejemplos

Este ejemplo de código crea un nuevo nivel de permisos y agrega un usuario a la lista anuncios con ese nivel de permisos.

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");
        }
    }
}

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros RoleAssignmentCollection

Espacio de nombres Microsoft.SharePoint.Client