Compartilhar via


RoleAssignmentCollection classe

Representa uma coleção de objetos RoleAssignment que define todas as atribuições de função para cada objeto protegível.

Inheritance hierarchy

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

Namespace:  Microsoft.SharePoint.Client
Assemblies:   Microsoft.SharePoint.Client.Silverlight (em Microsoft.SharePoint.Client.Silverlight.dll);  Microsoft.SharePoint.Client.Phone (em Microsoft.SharePoint.Client.Phone.dll)  Microsoft.SharePoint.Client (em Microsoft.SharePoint.Client.dll)

Sintaxe

'Declaração
Public NotInheritable Class RoleAssignmentCollection _
    Inherits ClientObjectCollection(Of RoleAssignment)
'Uso
Dim instance As RoleAssignmentCollection
public sealed class RoleAssignmentCollection : ClientObjectCollection<RoleAssignment>

Comentários

Use a propriedade RoleAssignments da classe SPPermissionInfo, SecurableObject, List, ListItemou Web , para retornar a coleção de atribuições de função para o objeto fornecido.

Para criar uma atribuição de função que não tem nenhum ligações de definição de função, use um construtor de RoleAssignment . Para adicionar definições de função associado a uma atribuição de função, use o método ImportRoleDefinitionBindings . Use o método Add(RoleAssignment) da classe RoleAssignmentCollection para adicionar uma atribuição de função para o conjunto de atribuições de função para o objeto.

Use um indexador para retornar um único item da coleção. Por exemplo, se o conjunto é atribuído a uma variável chamada myRoleAssignments, use myRoleAssignments[index] em c# ou myRoleAssignments(deindex) em Visual Basic, onde index é o número de índice do item na coleção ou uma cadeia de caracteres que contém o nome da definição de função.

Exemplos

Este exemplo de código cria um novo nível de permissão e adiciona um usuário à lista anúncios com nível de permissão.

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

Segurança de thread

Os membros públicos estática (Shared no Visual Basic) desse tipo são seguros para thread. Nenhum membro de instância pode ser garantido como seguro para thread.

Ver também

Referência

RoleAssignmentCollection membros

Microsoft.SharePoint.Client namespace