Compartir a través de


Clase CSacl

Esta clase es un contenedor de una estructura SACL (lista de control de acceso del sistema).

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

class CSacl : public CAcl

Miembros

Constructores públicos

Nombre Descripción
CSacl::CSacl Constructor .
CSacl::~CSacl El destructor .

Métodos públicos

Nombre Descripción
CSacl::AddAuditAce Agrega una entrada de control de acceso (ACE) de auditoría al objeto CSacl.
CSacl::GetAceCount Devuelve el número de entradas de control de acceso (ACE) en el objeto CSacl.
CSacl::RemoveAce Quita una ACE específica (entrada de control de acceso) del objeto CSacl.
CSacl::RemoveAllAces Quita todas las ACE contenidas en el objeto CSacl.

Operadores públicos

Nombre Descripción
CSacl::operator = Operador de asignación.

Comentarios

Una SACL contiene entradas de control de acceso (ACE) que especifican los tipos de intentos de acceso que generan registros de auditoría en el registro de eventos de seguridad de un controlador de dominio. Tenga en cuenta que una SACL genera entradas de registro solo en el controlador de dominio donde se produjo el intento de acceso, no en todos los controladores de dominio que contengan una réplica del objeto.

Para establecer o recuperar la SACL en el descriptor de seguridad de un objeto, el privilegio SE_SECURITY_NAME debe estar habilitado en el token de acceso del subproceso solicitante. El grupo de administradores tiene este privilegio concedido de forma predeterminada y se puede conceder a otros usuarios o grupos. Tener el privilegio concedido no es lo único necesario: antes de que se pueda realizar la operación definida por el privilegio, el privilegio debe estar habilitado en el token de acceso de seguridad para que surta efecto. El modelo permite habilitar los privilegios solo para operaciones específicas del sistema y, después, se deshabilitan cuando ya no son necesarios. Consulte AtlGetSacl y AtlSetSacl para obtener ejemplos de habilitación de SE_SECURITY_NAME.

Use los métodos de clase proporcionados para agregar, quitar, crear y eliminar ACL del objeto SACL. Consulte también AtlGetSacl y AtlSetSacl.

Para una introducción al modelo de control de acceso en Windows, consulte Control de acceso en Windows SDK.

Jerarquía de herencia

CAcl

CSacl

Requisitos

Encabezado: atlsecurity.h

CSacl::AddAuditAce

Agrega una entrada de control de acceso (ACE) de auditoría al objeto CSacl.

bool AddAuditAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    bool bSuccess,
    bool bFailure,
    BYTE AceFlags = 0) throw(...);

bool AddAuditAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    bool bSuccess,
    bool bFailure,
    BYTE AceFlags,
    const GUID* pObjectType,
    const GUID* pInheritedObjectType) throw(...);

Parámetros

rSid
Objeto CSid.

AccessMask
Especifica la máscara de derechos de acceso que se auditará para el objeto CSid especificado.

bSuccess
Especifica si se van a auditar los intentos de acceso permitidos. Establezca esta marca en true para habilitar la auditoría; de lo contrario, establézcala en false.

bFailure
Especifica si se van a auditar los intentos de acceso denegado. Establezca esta marca en true para habilitar la auditoría; de lo contrario, establézcala en false.

AceFlags
Un conjunto de marcas de bits que controlan la herencia ACE.

pObjectType
El tipo de objeto.

pInheritedObjectType
Tipo de objeto heredado.

Valor devuelto

Devuelve TRUE si la ACE se agrega al objeto CSacl y FALSE en caso de error.

Comentarios

Un objeto CSacl contiene entradas de control de acceso (ACE) que especifican los tipos de intentos de acceso que generan registros de auditoría en el registro de eventos de seguridad. Este método agrega este tipo de ACE al objeto CSacl.

Consulte ACE_HEADER para obtener una descripción de las distintas marcas que se pueden establecer en el parámetro AceFlags.

CSacl::CSacl

Constructor .

CSacl() throw();
CSacl(const ACL& rhs) throw(...);

Parámetros

rhs
Estructura existente ACL (lista de control de acceso).

Comentarios

El objeto CSacl se puede crear opcionalmente mediante una estructura ACL existente. Asegúrese de que este parámetro es una lista de control de acceso del sistema (SACL) y no una lista de control de acceso discrecional (DACL). En las compilaciones de depuración, si se proporciona una DACL, se producirá una aserción. En la versión de compilación, se omiten todas las entradas de una DACL.

CSacl::~CSacl

El destructor .

~CSacl() throw();

Comentarios

El destructor libera todos los recursos adquiridos por el objeto, incluidas todas las entradas de control de acceso (ACE).

CSacl::GetAceCount

Devuelve el número de entradas de control de acceso (ACE) en el objeto CSacl.

UINT GetAceCount() const throw();

Valor devuelto

Devuelve el número de AE contenidos en el objeto CSacl.

CSacl::operator =

Operador de asignación.

CSacl& operator=(const ACL& rhs) throw(...);

Parámetros

rhs
ACL (lista de control de acceso) que se va a asignar al objeto existente.

Valor devuelto

Devuelve una referencia al objeto actualizado CSacl. Asegúrese de que el parámetro ACL es una lista de control de acceso del sistema (SACL) y no una lista de control de acceso discrecional (DACL). En las compilaciones de depuración se producirá una aserción y, en las compilaciones de versión, se omitirá el parámetro ACL.

CSacl::RemoveAce

Quita una ACE específica (entrada de control de acceso) del objeto CSacl.

void RemoveAce(UINT nIndex) throw();

Parámetros

nIndex
Índice a la entrada ACE que se va a quitar.

Comentarios

Este método deriva de CAtlArray::RemoveAt.

CSacl::RemoveAllAces

Quita todas las entradas de control de acceso (ACE) contenidas en el objeto CSacl.

void RemoveAllAces() throw();

Comentarios

Quita todas las estructuras ACE (si las hay) del objeto CSacl.

Consulte también

CAcl (clase)
ACLs
ACE
Información general sobre la clase
Funciones globales de seguridad