Compartilhar via


SecurableObject.BreakRoleInheritance método

Cria atribuições de função exclusivas para o objeto protegível.

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 Overridable Sub BreakRoleInheritance ( _
    copyRoleAssignments As Boolean, _
    clearSubscopes As Boolean _
)
'Uso
Dim instance As SecurableObject
Dim copyRoleAssignments As Boolean
Dim clearSubscopes As Boolean

instance.BreakRoleInheritance(copyRoleAssignments, _
    clearSubscopes)
public virtual void BreakRoleInheritance(
    bool copyRoleAssignments,
    bool clearSubscopes
)

Parâmetros

  • copyRoleAssignments
    Tipo: System.Boolean

    Especifica se deseja copiar as atribuições de funções do objeto protegíveis pai.

    Se o valor for false, o conjunto de atribuições de função deve conter apenas 1 atribuição de função que contém o usuário atual após a operação.

  • clearSubscopes
    Tipo: System.Boolean

    Se o objeto protegível é um site e o parâmetro clearsubscopes é true, as atribuições de funções para todos os objetos de protegíveis filho no site atual e nos sites que herdam atribuições de função de site atual devem ser limpos e os objetos protegíveis herdarão atribuições de função do site atual após essa chamada.

    Se o objeto protegível é um site e o parâmetro clearsubscopes é false, as atribuições de funções para todos os objetos protegíveis filho que não herdam atribuições de função do objeto pai devem permanecer inalteradas.

    Se o objeto protegível não é um site e o parâmetro clearsubscopes é true, as atribuições de funções para todos os objetos protegíveis filho devem ser limpos e os objetos protegíveis herdarão as atribuições de função do objeto atual protegível após essa chamada.

    Se o objeto protegível não é um site e o parâmetro clearsubscopes é false, as atribuições de funções para todos os objetos protegíveis filho que não herdam atribuições de função do objeto pai devem permanecer inalteradas.

Exceções

Exceção Condição
[Microsoft.SharePoint.SPException]

O site atual é o site de nível superior. Código de erro:-2146232832.

[System.InvalidOperationException]

Há alterações não confirmadas para o site atual. Código de erro: -1.

[System.UnauthorizedAccessException]

O usuário atual tem permissões suficientes. Código de erro: -2147024891.

Comentários

Se o objeto protegível já tem atribuições de função exclusivo, o servidor não deve alterar qualquer atribuições 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 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");
        }
    }
}

Ver também

Referência

SecurableObject classe

SecurableObject membros

Microsoft.SharePoint.Client namespace