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