Share via


CAcl-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse is een wrapper voor een ACL structuur (toegangsbeheerlijst).

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

class CAcl

Leden

Openbare typedefs

Naam Description
CAcl::CAccessMaskArray Een matrix van ACCESS_MASKs.
CAcl::CAceFlagArray Een matrix van BYTE's.
CAcl::CAceTypeArray Een matrix van BYTE's.

Openbare constructors

Naam Description
CAcl::CAcl De constructor.
CAcl::~CAcl De destructor.

Openbare methoden

Naam Description
CAcl::GetAceCount Retourneert het aantal ACE-objecten (Access Control Entry).
CAcl::GetAclEntries Haalt de ACL-vermeldingen (Access Control List) op uit het CAcl object.
CAcl::GetAclEntry Hiermee haalt u alle informatie over een vermelding in een CAcl object op.
CAcl::GetLength Retourneert de lengte van de ACL.
CAcl::GetPACL Hiermee wordt een PACL (aanwijzer naar een ACL) geretourneerd.
CAcl::Isempty Test het CAcl object op vermeldingen.
CAcl::IsNull Retourneert de status van het CAcl object.
CAcl::RemoveAce Hiermee verwijdert u een specifieke ACE (toegangsbeheervermelding) uit het CAcl object.
CAcl::RemoveAces Hiermee verwijdert u alle ACL's (toegangsbeheervermeldingen) uit de CAcl vermeldingen die van toepassing zijn op de opgegeven CSid.
CAcl::SetEmpty Hiermee wordt het CAcl object als leeg gemarkeerd.
CAcl::SetNull Hiermee wordt het CAcl object gemarkeerd als NULL.

Openbare operators

Naam Description
CAcl::operator const ACL * Cast een CAcl object naar een ACL structuur.
CAcl::operator = Toewijzingsoperator.

Opmerkingen

De ACL structuur is de koptekst van een ACL (toegangsbeheerlijst). Een ACL bevat een opeenvolgende lijst met nul of meer ACL's (vermeldingen voor toegangsbeheer). De afzonderlijke ACL's in een ACL worden genummerd van 0 tot n-1, waarbij n het aantal ACL's is. Bij het bewerken van een ACL verwijst een toepassing door de index naar een toegangsbeheervermelding (ACE) binnen de ACL.

Er zijn twee ACL-typen:

  • Discretionaire

  • Systeem

Een discretionaire ACL wordt beheerd door de eigenaar van een object of iemand die WRITE_DAC toegang tot het object heeft verleend. Hiermee geeft u de toegang op die bepaalde gebruikers en groepen tot een object kunnen hebben. De eigenaar van een bestand kan bijvoorbeeld een discretionaire ACL gebruiken om te bepalen welke gebruikers en groepen toegang hebben tot het bestand.

Aan een object kan ook beveiligingsinformatie op systeemniveau zijn gekoppeld, in de vorm van een systeem-ACL die wordt beheerd door een systeembeheerder. Een systeem-ACL kan de systeembeheerder toestaan om pogingen om toegang te krijgen tot een object te controleren.

Zie de ACL-discussie in de Windows SDK voor meer informatie.

Zie Access Control in de Windows SDK voor een inleiding tot het toegangsbeheermodel in Windows.

Requirements

Koptekst: atlsecurity.h

CAcl::CAccessMaskArray

Een matrix van ACCESS_MASK objecten.

typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;

Opmerkingen

Dit typedef geeft het matrixtype op dat kan worden gebruikt voor het opslaan van toegangsrechten die worden gebruikt in toegangsbeheervermeldingen (ACL's).

CAcl::CAceFlagArray

Een matrix van BYTE's.

typedef CAtlArray<BYTE> CAceFlagArray;

Opmerkingen

Met dit typedef geeft u het matrixtype op dat wordt gebruikt voor het definiëren van de typespecifieke typevlagmen voor toegangsbeheer (ACE). Zie de ACE_HEADER definitie voor de volledige lijst met mogelijke vlaggen.

CAcl::CAceTypeArray

Een matrix van BYTE's.

typedef CAtlArray<BYTE> CAceTypeArray;

Opmerkingen

Met dit typedef geeft u het matrixtype op dat wordt gebruikt om de aard van de ACE-objecten (Access Control Entry) te definiëren, zoals ACCESS_ALLOWED_ACE_TYPE of ACCESS_DENIED_ACE_TYPE. Zie de ACE_HEADER definitie voor de volledige lijst met mogelijke typen.

CAcl::CAcl

De constructor.

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

Parameterwaarden

Rhs
Een bestaand CAcl object.

Opmerkingen

Het CAcl object kan eventueel worden gemaakt met behulp van een bestaand CAcl object.

CAcl::~CAcl

De destructor.

virtual ~CAcl() throw();

Opmerkingen

Met de destructor worden alle resources die door het object zijn verkregen, vrijgemaakt.

CAcl::GetAceCount

Retourneert het aantal ACE-objecten (Access Control Entry).

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

Retourwaarde

Retourneert het aantal ACE-vermeldingen in het CAcl object.

CAcl::GetAclEntries

Haalt de ACL-vermeldingen (Access Control List) op uit het CAcl object.

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

Parameterwaarden

pSids
Een aanwijzer naar een matrix van CSid-objecten .

pAccessMasks
De toegangsmaskers.

pAceTypes
De ace-typen (access-control entry).

pAceFlags
De ACE-vlaggen.

Opmerkingen

Met deze methode worden de matrixparameters gevuld met de details van elk ACE-object in het CAcl object. Gebruik NULL wanneer de details voor die specifieke matrix niet vereist zijn.

De inhoud van elke matrix komt overeen met elkaar, dat wil gezegd, het eerste element van de CAccessMaskArray matrix komt overeen met het eerste element in de CSidArray matrix, enzovoort.

Zie ACE_HEADER voor meer informatie over ACE-typen en -vlaggen.

CAcl::GetAclEntry

Hiermee haalt u alle informatie over een vermelding in een toegangsbeheerlijst (ACL) op.

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

Parameterwaarden

nIndex
Indexeren naar de ACL-vermelding die moet worden opgehaald.

pSid
Het CSid-object waarop de ACL-vermelding van toepassing is.

pMask
Het masker dat machtigingen opgeeft om toegang te verlenen of te weigeren.

pType
Het ACE-type.

pFlags
De ACE-vlaggen.

pObjectType
Het objecttype. Dit wordt ingesteld op GUID_NULL als het objecttype niet is opgegeven in de ACE of als de ACE geen OBJECT-ACE is.

pInheritedObjectType
Het overgenomen objecttype. Dit wordt ingesteld op GUID_NULL als het overgenomen objecttype niet is opgegeven in de ACE of als de ACE geen OBJECT-ACE is.

Opmerkingen

Met deze methode wordt alle informatie over een afzonderlijke ACE opgehaald, wat meer informatie biedt dan CAcl::GetAclEntries alleen beschikbaar maakt.

Zie ACE_HEADER voor meer informatie over ACE-typen en -vlaggen.

CAcl::GetLength

Retourneert de lengte van de toegangsbeheerlijst (ACL).

UINT GetLength() const throw();

Retourwaarde

Retourneert de vereiste lengte in bytes die nodig zijn om de ACL structuur te bewaren.

CAcl::GetPACL

Hiermee wordt een aanwijzer geretourneerd naar een toegangsbeheerlijst (ACL).

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

Retourwaarde

Retourneert een aanwijzer naar de ACL structuur.

CAcl::Isempty

Test het CAcl object op vermeldingen.

bool IsEmpty() const throw();

Opmerkingen

Retourneert TRUE als het CAcl object niet NULL is en geen vermeldingen bevat. Retourneert ONWAAR als het CAcl object NULL is of ten minste één vermelding bevat.

CAcl::IsNull

Retourneert de status van het CAcl object.

bool IsNull() const throw();

Retourwaarde

Retourneert TRUE als het CAcl object NULL is, anders ONWAAR.

CAcl::operator const ACL *

Hiermee wordt een CAcl object omgezet in een ACL structuur (toegangsbeheerlijst).

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

Opmerkingen

Retourneert het adres van de ACL structuur.

CAcl::operator =

Toewijzingsoperator.

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

Parameterwaarden

Rhs
De CAcl toe te wijzen aan het bestaande object.

Retourwaarde

Retourneert een verwijzing naar het bijgewerkte CAcl object.

CAcl::RemoveAce

Hiermee verwijdert u een specifieke ACE (toegangsbeheervermelding) uit het CAcl object.

void RemoveAce(UINT nIndex) throw();

Parameterwaarden

nIndex
Indexeren naar de ACE-vermelding die u wilt verwijderen.

Opmerkingen

Deze methode is afgeleid van CAtlArray::RemoveAt.

CAcl::RemoveAces

Hiermee verwijdert u alle ACL's (toegangsbeheervermeldingen) uit de CAcl vermeldingen die van toepassing zijn op de opgegeven CSid.

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

Parameterwaarden

rSid
Een verwijzing naar een CSid object.

CAcl::SetEmpty

Hiermee wordt het CAcl object als leeg gemarkeerd.

void SetEmpty() throw();

Opmerkingen

De CAcl waarde kan worden ingesteld op leeg of op NULL: de twee statussen zijn verschillend.

CAcl::SetNull

Hiermee wordt het CAcl object gemarkeerd als NULL.

void SetNull() throw();

Opmerkingen

De CAcl waarde kan worden ingesteld op leeg of op NULL: de twee statussen zijn verschillend.

Zie ook

Overzicht van klassen
Globale beveiligingsfuncties