Freigeben über


RoleAssignmentCollection-Klasse

Stellt eine Auflistung von RoleAssignment -Objekten, die alle rollenzuweisungen für jedes sicherungsfähige Objekt definiert.

Vererbungshierarchie

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

Namespace:  Microsoft.SharePoint.Client
Assemblys:   Microsoft.SharePoint.Client.Silverlight (in Microsoft.SharePoint.Client.Silverlight.dll);  Microsoft.SharePoint.Client.Phone (in Microsoft.SharePoint.Client.Phone.dll)  Microsoft.SharePoint.Client (in Microsoft.SharePoint.Client.dll)

Syntax

'Declaration
Public NotInheritable Class RoleAssignmentCollection _
    Inherits ClientObjectCollection(Of RoleAssignment)
'Usage
Dim instance As RoleAssignmentCollection
public sealed class RoleAssignmentCollection : ClientObjectCollection<RoleAssignment>

Hinweise

Verwenden Sie die Eigenschaft RoleAssignments der Klasse SPPermissionInfo, SecurableObject, List, ListItemoder Web , um die Sammlung von rollenzuweisungen für das jeweilige Objekt zurückzugeben.

Verwenden Sie zum Erstellen einer rollenzuweisung, die keine Rolle Definition Bindungen weist einen Konstruktor RoleAssignment ein. Um eine rollenzuweisung gebundenen Rollendefinitionen hinzuzufügen, verwenden Sie die ImportRoleDefinitionBindings -Methode aus. Verwenden Sie die Add(RoleAssignment) -Methode der RoleAssignmentCollection -Klasse, um eine rollenzuweisung der Auflistung des rollenzuweisungen für das Objekt hinzuzufügen.

Verwenden Sie Indexer, um ein einzelnes Element aus der Auflistung zurückzugeben. Beispielsweise die Sammlung einer Variablen namens myRoleAssignmentszugewiesen ist, verwenden Sie myRoleAssignments[index] in c# oder myRoleAssignments(einindex-') in Visual Basic, index Wo finde ich die Anzahl Index des Elements in der Auflistung oder eine Zeichenfolge, die mit dem Namen der Rollendefinition.

Beispiele

In diesem Codebeispiel erstellt eine neue Berechtigungsstufe und der Ankündigungsliste mit dieser Berechtigungsstufe ein Benutzer hinzugefügt.

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

RoleAssignmentCollection-Member

Microsoft.SharePoint.Client-Namespace