次の方法で共有


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>

注釈

特定のオブジェクトの役割の割り当てのコレクションを返すには、 SPPermissionInfoSecurableObjectListListItem、またはWebクラスのRoleAssignmentsプロパティを使用します。

役割定義バインドされていない役割の割り当てを作成するには、 RoleAssignmentコンスを使用します。バインドされたロールの定義を役割の割り当てに追加するには、 ImportRoleDefinitionBindingsメソッドを使います。オブジェクトの役割の割り当てのコレクションに役割の割り当てを追加するのにには、 RoleAssignmentCollectionクラスの**Add(RoleAssignment)**メソッドを使用します。

コレクションから、単一のアイテムを取得するのにには、インデクサーを使用します。たとえば、コレクションに割り当てた場合myRoleAssignmentsという名前の変数、使用myRoleAssignments[index]Visual Basicで C# コードまたはmyRoleAssignments(index)ではどこに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 (Visual Basic のShared ) メンバーはいずれもスレッド セーフです。インスタンス メンバーはスレッド セーフになるという保証はありません。

関連項目

参照先

RoleAssignmentCollection メンバー

Microsoft.SharePoint.Client 名前空間