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
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