Compartir a través de


Clase CAcl

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

Importante

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

Sintaxis

class CAcl

Miembros

Definiciones de tipos públicas

Nombre Descripción
CAcl::CAccessMaskArray Matriz de ACCESS_MASKs.
CAcl::CAceFlagArray Matriz de BYTEs.
CAcl::CAceTypeArray Matriz de BYTEs.

Constructores públicos

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

Métodos públicos

Nombre Descripción
CAcl::GetAceCount Devuelve el número de objetos de entrada de control de acceso (ACE).
CAcl::GetAclEntries Recupera las entradas de la lista de control de acceso (ACL) del objeto CAcl.
CAcl::GetAclEntry Recupera toda la información sobre una entrada de un objeto CAcl.
CAcl::GetLength Devuelve la longitud de la lista de control de acceso.
CAcl::GetPACL Devuelve una PACL (puntero a una lista de control de acceso).
CAcl::IsEmpty Prueba las entradas del objeto CAcl.
CAcl::IsNull Devuelve el estado del objeto CAcl.
CAcl::RemoveAce Quita una ACE específica (entrada de control de acceso) del objeto CAcl.
CAcl::RemoveAces Quita de CAcl todas las ACE (entradas de control de acceso) que se aplican a la CSid especificada.
CAcl::SetEmpty Marca el objeto CAcl como vacío.
CAcl::SetNull Marca el objeto CAcl como NULL.

Operadores públicos

Nombre Descripción
CAcl::operator const ACL * Convierte un objeto CAcl en una estructura ACL.
CAcl::operator = Operador de asignación.

Comentarios

La estructura ACL es el encabezado de una ACL (lista de control de acceso). Las ACL incluyen una lista secuencial de cero o más ACE (entradas de control de acceso). Los ACE individuales de una ACL se numeran de 0 a n-1, donde n es el número de ACE que hay en la ACL. Al editar una ACL, una aplicación hace referencia a una entrada de control de acceso (ACE) de la ACL por su índice.

Hay dos tipos de ACL:

  • Discrecional

  • Sistema

Los ACL discrecionales se controlan mediante el propietario de un objeto o cualquier persona con acceso WRITE_DAC al objeto. Especifica el acceso que usuarios y grupos concretos pueden tener a un objeto. Por ejemplo, el propietario de un archivo puede usar una ACL discrecional para controlar qué usuarios y grupos pueden y no pueden tener acceso al archivo.

Un objeto también puede tener información de seguridad de nivel de sistema asociada, en forma de ACL del sistema controlada por un administrador del sistema. Las ACL del sistema pueden permitir que el administrador del sistema audite los intentos de obtener acceso a un objeto.

Para más información, consulte la explicación sobre ACL de Windows SDK.

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

Requisitos

Encabezado: atlsecurity.h

CAcl::CAccessMaskArray

Matriz de objetos ACCESS_MASK.

typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;

Comentarios

Esta typedef especifica el tipo de matriz que se puede usar para almacenar los derechos de acceso que se usan en entradas de control de acceso (ACE).

CAcl::CAceFlagArray

Matriz de BYTEs.

typedef CAtlArray<BYTE> CAceFlagArray;

Comentarios

Esta typedef especifica el tipo de matriz que se utiliza para definir las marcas de control específicas del tipo de entrada de control de acceso (ACE). Consulte la definición de ACE_HEADER para obtener la lista completa de posibles marcas.

CAcl::CAceTypeArray

Matriz de BYTEs.

typedef CAtlArray<BYTE> CAceTypeArray;

Comentarios

Esta typedef especifica el tipo de matriz que se usa para definir la naturaleza de los objetos de entrada de control de acceso (ACE), como ACCESS_ALLOWED_ACE_TYPE o ACCESS_DENIED_ACE_TYPE. Consulte la definición de ACE_HEADER para obtener la lista completa de posibles tipos.

CAcl::CAcl

Constructor .

CAcl() throw();
CAcl(const CAcl& rhs) throw(...);

Parámetros

rhs
Objeto CAcl existente.

Comentarios

El objeto CAcl se puede crear opcionalmente mediante una objeto CAcl existente.

CAcl::~CAcl

El destructor .

virtual ~CAcl() throw();

Comentarios

El destructor libera los recursos adquiridos por el objeto.

CAcl::GetAceCount

Devuelve el número de objetos de entrada de control de acceso (ACE).

virtual UINT GetAceCount() const throw() = 0;

Valor devuelto

Devuelve el número de entradas de ACE del objeto CAcl.

CAcl::GetAclEntries

Recupera las entradas de la lista de control de acceso (ACL) del objeto CAcl.

void GetAclEntries(
    CSid::CSidArray* pSids,
    CAccessMaskArray* pAccessMasks = NULL,
    CAceTypeArray* pAceTypes = NULL,
    CAceFlagArray* pAceFlags = NULL) const throw(...);

Parámetros

pSids
Puntero a una matriz de objetos CSid.

pAccessMasks
Máscaras de acceso.

pAceTypes
Tipos de entrada de control de acceso (ACE).

pAceFlags
Marcas de ACE.

Comentarios

Este método rellena los parámetros de la matriz con los detalles de todos los objetos de ACE incluido en el objeto CAcl. Use NULL cuando no se necesitan los detalles de una matriz determinada.

El contenido de cada matriz se corresponde entre sí, es decir, el primer elemento de la matriz CAccessMaskArray corresponde al primer elemento de la matriz CSidArray, etc.

Para más información sobre los tipos y las marcas de ACE, consulte ACE_HEADER.

CAcl::GetAclEntry

Recupera toda la información sobre una entrada de una lista de control de acceso (ACL).

void GetAclEntry(
    UINT nIndex,
    CSid* pSid,
    ACCESS_MASK* pMask = NULL,
    BYTE* pType = NULL,
    BYTE* pFlags = NULL,
    GUID* pObjectType = NULL,
    GUID* pInheritedObjectType = NULL) const throw(...);

Parámetros

nIndex
Índice a la entrada de ACL que se va a recuperar.

pSid
Objeto CSid al que se aplica la entrada de ACL.

pMask
Máscara que especifica permisos para conceder o denegar el acceso.

pType
Tipo de ACE.

pFlags
Marcas de ACE.

pObjectType
El tipo de objeto. Se establecerá en GUID_NULL si el tipo de objeto no se especifica en la ACE, o bien si la ACE no es una ACE OBJECT.

pInheritedObjectType
Tipo de objeto heredado. Se establecerá en GUID_NULL si el tipo de objeto heredado no se especifica en la ACE o si la ACE no es una ACE OBJECT.

Comentarios

Este método recuperará toda la información sobre una ACE individual, que proporciona más información que CAcl::GetAclEntries por sí solo pone a disposición.

Para más información sobre los tipos y las marcas de ACE, consulte ACE_HEADER.

CAcl::GetLength

Devuelve la longitud de la lista de control de acceso (ACL).

UINT GetLength() const throw();

Valor devuelto

Devuelve la longitud necesaria, en bytes, necesaria para contener la estructura ACL.

CAcl::GetPACL

Devuelve un puntero a una lista de control de acceso (ACL).

const ACL* GetPACL() const throw(...);

Valor devuelto

Devuelve un puntero a la estructura ACL.

CAcl::IsEmpty

Prueba las entradas del objeto CAcl.

bool IsEmpty() const throw();

Comentarios

Devuelve TRUE si el objeto CAcl no es NULL y no contiene entradas. Devuelve FALSE si el objeto CAcl es NULL o contiene al menos una entrada.

CAcl::IsNull

Devuelve el estado del objeto CAcl.

bool IsNull() const throw();

Valor devuelto

Devuelve TRUE si el objeto CAcl es NULL y FALSE en caso contrario.

CAcl::operator const ACL *

Convierte un objeto CAcl en una estructura ACL (lista de control de acceso).

operator const ACL *() const throw(...);

Comentarios

Devuelve la dirección de la estructura ACL.

CAcl::operator =

Operador de asignación.

CAcl& operator= (const CAcl& rhs) throw(...);

Parámetros

rhs
El CAcl que se va a asignar al objeto existente.

Valor devuelto

Devuelve una referencia al objeto actualizado CAcl.

CAcl::RemoveAce

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

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.

CAcl::RemoveAces

Quita todas las ACE (entradas de control de acceso) del CAcl que se aplican a la CSid dada.

bool RemoveAces(const CSid& rSid) throw(...)

Parámetros

rSid
Referencia a un objeto CSid.

CAcl::SetEmpty

Marca el objeto CAcl como vacío.

void SetEmpty() throw();

Comentarios

CAcl se puede establecer en vacío o en NULL: los dos estados son distintos.

CAcl::SetNull

Marca el objeto CAcl como NULL.

void SetNull() throw();

Comentarios

CAcl se puede establecer en vacío o en NULL: los dos estados son distintos.

Consulte también

Información general sobre la clase
Funciones globales de seguridad