SecurableObject.BreakRoleInheritance メソッド
サイト定義の構成またはサイト テンプレートの説明を示す値を取得します。
名前空間: 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 Overridable Sub BreakRoleInheritance ( _
copyRoleAssignments As Boolean, _
clearSubscopes As Boolean _
)
'使用
Dim instance As SecurableObject
Dim copyRoleAssignments As Boolean
Dim clearSubscopes As Boolean
instance.BreakRoleInheritance(copyRoleAssignments, _
clearSubscopes)
public virtual void BreakRoleInheritance(
bool copyRoleAssignments,
bool clearSubscopes
)
パラメーター
copyRoleAssignments
型: System.Boolean親のセキュリティ保護可能オブジェクトから役割の割り当てをコピーするかどうかを指定します。
値がfalseの場合は、役割の割り当てのコレクションは、操作の後の [現在のユーザーが含まれている 1 つの役割の割り当てを含める必要があります。
clearSubscopes
型: System.Booleanセキュリティ保護可能オブジェクトは、サイト、clearsubscopes パラメーターがtrue場合は、すべての子セキュリティ保護可能オブジェクトと、現在のサイトからの役割の割り当てを継承するサイトで、現在のサイトの役割の割り当てをオフにし、セキュリティ保護可能オブジェクトを継承役割の割り当て、現在のサイトからこの通話の後にします。
セキュリティ保護可能オブジェクトは、サイト、clearsubscopes パラメーターがfalse場合は、役割の割り当ては継承されず、親オブジェクトからすべての子セキュリティ保護可能オブジェクトの役割の割り当ては変更されませんする必要があります。
セキュリティ保護可能オブジェクトは、サイト、clearsubscopes パラメーターがtrue場合は、すべての子セキュリティ保護可能オブジェクトの役割の割り当てをオフにし、セキュリティ保護可能オブジェクトを継承役割の割り当て、現在のセキュリティ保護可能オブジェクトからこの通話の後にします。
セキュリティ保護可能オブジェクトは、サイト、clearsubscopes パラメーターがfalse場合は、役割の割り当ては継承されず、親オブジェクトからすべての子セキュリティ保護可能オブジェクトの役割の割り当ては変更されませんする必要があります。
例外
例外 | 条件 |
---|---|
[Microsoft.SharePoint.SPException] | 現在のサイトは、トップレベルのサイトです。エラー コード:-2146232832 します。 |
[System.InvalidOperationException] | 現在のサイトの変更をコミットがあります。エラー コード:-1 します。 |
[System.UnauthorizedAccessException] | 現在のユーザーでは、十分なアクセス許可を持っています。エラー コード:-2147024891 します。 |
注釈
セキュリティ保護可能オブジェクトは、一意の役割の割り当てを既に持っている場合サーバーはその役割の割り当てを変更する必要があります。
例
この例では、新しいアクセス許可レベルを作成し、アクセス許可レベルで知らせリストにユーザーを追加します。
using System;
using Microsoft.SharePoint.Client;
namespace Microsoft.SDK.SharePointFoundation.Samples
{
class SecurableObject_BreakRoleInheritanceExample
{
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 a securable object to work with (the Announcements list), and use the SecurableObject.BreakPermissions method to break permissions so they can be managed directly.
SecurableObject listSecurable = site.Lists.GetByTitle("Announcements");
listSecurable.BreakRoleInheritance(true, false);
// Use the SecurableObject.roleAssignments property to get the RoleAssignmentCollection for the list.
RoleAssignmentCollection collRoleAssign = listSecurable.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");
}
}
}