del método SecurableObject.BreakRoleInheritance
Crea asignaciones de roles únicas para el objeto protegible.
Espacio de nombres: Microsoft.SharePoint.Client
Ensamblados: Microsoft.SharePoint.Client.Silverlight (en Microsoft.SharePoint.Client.Silverlight.dll); Microsoft.SharePoint.Client.Phone (en Microsoft.SharePoint.Client.Phone.dll) Microsoft.SharePoint.Client (en Microsoft.SharePoint.Client.dll)
Sintaxis
'Declaración
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.BooleanEspecifica si desea copiar las asignaciones de roles del objeto protegibles principal.
Si el valor es false, la colección de asignaciones de roles debe contener solo 1 asignación de roles que contiene el usuario actual después de la operación.
clearSubscopes
Tipo: System.BooleanSi el objeto protegible es un sitio y el parámetro clearsubscopes es true, debe estar desactivada la asignación de rol para todos los objetos protegibles de secundarios en el sitio actual y en los sitios que heredan las asignaciones de roles del sitio actual y los objetos protegibles heredarán las asignaciones de roles del sitio actual después de esta llamada.
Si el objeto protegible es un sitio y el parámetro clearsubscopes es false, la asignación de rol para todos los objetos protegibles secundarios no heredan las asignaciones de roles de un objeto primario debe permanecer sin cambios.
Si el objeto protegible no es un sitio y el parámetro de clearsubscopes es true, deben estar desactivadas para todos los objetos protegibles de secundarios las asignaciones de roles y los objetos protegibles heredarán las asignaciones de roles del objeto protegibles actual después de esta llamada.
Si el objeto protegible no es un sitio y el parámetro de clearsubscopes es false, la asignación de rol para todos los objetos protegibles secundarios no heredan las asignaciones de roles de un objeto primario debe permanecer sin cambios.
Excepciones
Excepción | Condición |
---|---|
[Microsoft.SharePoint.SPException] | El sitio actual es el sitio de nivel superior. Código de error:-2146232832. |
[System.InvalidOperationException] | Hay cambios sin confirmar para el sitio actual. Código de error: -1. |
[System.UnauthorizedAccessException] | El usuario actual no tiene permisos suficientes. Código de error: -2147024891. |
Comentarios
Si el objeto protegible ya tiene las asignaciones de roles únicos, el servidor no debe modificar las asignaciones de roles.
Ejemplos
Este ejemplo de código crea un nuevo nivel de permisos y agrega un usuario a la lista anuncios con ese nivel de permisos.
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");
}
}
}