Класс RoleAssignmentCollection
Представляет коллекцию объектов RoleAssignment , определяющее все назначения ролей для каждого защищаемый объект.
Иерархия наследования
System.Object
Microsoft.SharePoint.Client.ClientObject
Microsoft.SharePoint.Client.ClientObjectCollection
Microsoft.SharePoint.Client.ClientObjectCollection<RoleAssignment>
Microsoft.SharePoint.Client.RoleAssignmentCollection
Пространство имен: Microsoft.SharePoint.Client
Сборки: Microsoft.SharePoint.Client.Silverlight (в Microsoft.SharePoint.Client.Silverlight.dll); Microsoft.SharePoint.Client.Phone (в Microsoft.SharePoint.Client.Phone.dll) Microsoft.SharePoint.Client (в Microsoft.SharePoint.Client.dll)
Синтаксис
'Декларация
Public NotInheritable Class RoleAssignmentCollection _
Inherits ClientObjectCollection(Of RoleAssignment)
'Применение
Dim instance As RoleAssignmentCollection
public sealed class RoleAssignmentCollection : ClientObjectCollection<RoleAssignment>
Замечания
Свойство RoleAssignments класса SPPermissionInfo, SecurableObject, List, ListItemили Web для возврата коллекции назначения ролей для данного объекта.
Чтобы создать назначение роли, имеющего нет привязок определение роли, используйте RoleAssignment конструктор. Чтобы добавить определения связанных ролей назначение роли, используйте метод ImportRoleDefinitionBindings . Используйте метод Add(RoleAssignment) класса RoleAssignmentCollection для добавления назначения ролей коллекцию назначения ролей для объекта.
Указатель служит для возвращения одного элемента из коллекции. Например коллекции присваивается переменная с именем myRoleAssignments, выполнитеindexmyRoleAssignments[] в C# или myRoleAssignments(index) в Visual Basic, где index является индекс элемента в коллекции или строка, содержащая имя определения роли.
Примеры
В этом примере код создает новый уровень разрешений и добавляет пользователя в списке уровень разрешений, извещения.
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");
}
}
}
Потокобезопасность
Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.