Compartir a través de


CDacl (clase)

Esta clase es un contenedor de una estructura DACL (lista de control de acceso discrecional).

Importante

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

Sintaxis

class CDacl : public CAcl

Miembros

Constructores públicos

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

Métodos públicos

Nombre Descripción
CDacl::AddAllowedAce Agrega una ACE permitida (entrada de control de acceso) al objeto CDacl.
CDacl::AddDeniedAce Agrega una ACE denegada al objeto CDacl.
CDacl::GetAceCount Devuelve el número de ACE (entradas de control de acceso) en el objeto CDacl.
CDacl::RemoveAce Quita una ACE específica (entrada de control de acceso) del objeto CDacl.
CDacl::RemoveAllAces Quita todas las ACE contenidas en el objeto CDacl.

Operadores públicos

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

Comentarios

El descriptor de seguridad de un objeto puede contener una DACL. Una DACL contiene cero o más ACE (entradas de control de acceso) que identifican a los usuarios y grupos que pueden acceder al objeto. Si una DACL está vacía (es decir, contiene cero ACE), no se concede explícitamente ningún acceso, por lo que el acceso se deniega implícitamente. Sin embargo, si el descriptor de seguridad de un objeto no tiene una DACL, el objeto no está protegido y todos tienen acceso completo.

Para recuperar la DACL de un objeto, debe ser el propietario del objeto o tener READ_CONTROL acceso al objeto. Para cambiar la DACL de un objeto, debe tener WRITE_DAC acceso al objeto.

Use los métodos de clase proporcionados para crear, agregar, quitar y eliminar ACL del objeto CDacl. Consulte también AtlGetDacl y AtlSetDacl.

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

Jerarquía de herencia

CAcl

CDacl

Requisitos

Encabezado: atlsecurity.h

CDacl::AddAllowedAce

Agrega una ACE permitida (entrada de control de acceso) al objeto CDacl.

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

bool AddAllowedAce(
    const CSid& rSid,
    ACCESS_MASK AccessMask,
    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 permitirá para el objeto especificado CSid.

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 CDacl y FALSE en caso de error.

Comentarios

Un objeto CDacl contiene cero o más ACE (entradas de control de acceso) que identifican a los usuarios y grupos que pueden acceder al objeto. Este método agrega una ACE que permite el acceso al objeto CDacl.

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

CDacl::AddDeniedAce

Agrega una ACE denegada (entrada de control de acceso) al objeto CDacl.

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

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

Parámetros

rSid
Un objeto CSid.

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

AceFlags
Un conjunto de marcas de bits que controlan la herencia ACE. El valor predeterminado es 0 en la primera forma del método.

pObjectType
El tipo de objeto.

pInheritedObjectType
Tipo de objeto heredado.

Valor devuelto

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

Comentarios

Un objeto CDacl contiene cero o más ACE (entradas de control de acceso) que identifican a los usuarios y grupos que pueden acceder al objeto. Este método agrega una ACE que deniega el acceso al objeto CDacl.

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

CDacl::CDacl

Constructor .

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

Parámetros

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

Comentarios

El objeto CDacl se puede crear opcionalmente mediante una estructura ACL existente. Es importante tener en cuenta que solo una DACL (lista de control de acceso discrecional) y no una SACL (lista de control de acceso del sistema) debe pasarse como este parámetro. En las compilaciones de depuración, el paso de una SACL provocará una instrucción ASSERT. En las compilaciones de versión, pasar una SACL hará que se omitan las ACA (entradas de control de acceso) en la ACL y no se producirá ningún error.

CDacl::~CDacl

El destructor .

~CDacl () throw();

Comentarios

El destructor libera los recursos adquiridos por el objeto, incluidos todos los AAC (entradas de control de acceso) mediante CDacl::RemoveAllAces.

CDacl::GetAceCount

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

UINT GetAceCount() const throw();

Valor devuelto

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

CDacl::operator =

Operador de asignación.

CDacl& 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 CDacl.

Comentarios

Debe asegurarse de que solo pase una DACL (lista de control de acceso discrecional) a esta función. Pasar una SACL (lista de control de acceso del sistema) a esta función provocará un ASSERT en compilaciones de depuración, pero no provocará ningún error en las compilaciones de versión.

CDacl::RemoveAce

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

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.

CDacl::RemoveAllAces

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

void RemoveAllAces() throw();

Comentarios

Quita cada estructura ACE (entrada de control de acceso) (si existe) en el objeto CDacl.

Consulte también

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