Partager via


SecurableObject.BreakRoleInheritance - Méthode

nombre d'erreurs rencontrées lors de la mise à niveau de la collection de sites.

Espace de noms :  Microsoft.SharePoint.Client
Assemblys :   Microsoft.SharePoint.Client.Silverlight (dans Microsoft.SharePoint.Client.Silverlight.dll);  Microsoft.SharePoint.Client.Phone (dans Microsoft.SharePoint.Client.Phone.dll)  Microsoft.SharePoint.Client (dans Microsoft.SharePoint.Client.dll)

Syntaxe

'Déclaration
Public Overridable Sub BreakRoleInheritance ( _
    copyRoleAssignments As Boolean, _
    clearSubscopes As Boolean _
)
'Utilisation
Dim instance As SecurableObject
Dim copyRoleAssignments As Boolean
Dim clearSubscopes As Boolean

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

Paramètres

  • copyRoleAssignments
    Type : System.Boolean

    Indique si vous voulez copier les attributions de rôle de l'objet sécurisables parent.

    Si la valeur est false, la collection d'attributions des rôles doit contenir uniquement 1 attribution de rôle contenant l'utilisateur actuel après l'opération.

  • clearSubscopes
    Type : System.Boolean

    Si l'objet sécurisable est un site et que le paramètre clearsubscopes est true, les attributions de rôle pour tous les objets sécurisables enfant dans le site actuel et dans les sites qui héritent des attributions de rôle à partir du site actuel doivent être désactivées, et ces objets sécurisables hériteront attributions de rôle à partir du site actuel après cet appel.

    Si l'objet sécurisable est un site et que le paramètre clearsubscopes est false, les attributions de rôle pour tous les objets sécurisables enfants qui n'héritent pas des attributions de rôle de leur objet parent doivent rester ne change pas.

    Si l'objet sécurisable n'est pas un site et que le paramètre clearsubscopes est true, les attributions de rôle pour tous les objets sécurisables enfant doivent être désactivées, et ces objets sécurisables héritent des attributions de rôle de l'objet sécurisable en cours après cet appel.

    Si l'objet sécurisable n'est pas un site et que le paramètre clearsubscopes est false, les attributions de rôle pour tous les objets sécurisables enfants qui n'héritent pas des attributions de rôle de leur objet parent doivent rester ne change pas.

Exceptions

Exception Condition
[Microsoft.SharePoint.SPException]

Le site actuel est le site de niveau supérieur. Code d'erreur :-2146232832.

[System.InvalidOperationException]

Il existe des modifications non validées pour le site actuel. Code d'erreur : -1.

[System.UnauthorizedAccessException]

L'utilisateur actuel dispose des autorisations suffisantes. Code d'erreur : -2147024891.

Remarques

Si l'objet sécurisable a déjà attributions de rôle unique, le serveur ne doit pas altérer les attributions de rôle.

Exemples

Cet exemple de code crée un nouveau niveau d'autorisation et ajoute un utilisateur dans la liste annonces à ce niveau d'autorisation.

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

Voir aussi

Référence

SecurableObject classe

SecurableObject - Membres

Microsoft.SharePoint.Client - Espace de noms