Sdílet prostřednictvím


CAcl – třída

Tato třída je obálka ACL pro strukturu (seznam řízení přístupu).

Důležité

Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.

Syntaxe

class CAcl

Členové

Veřejné definice typedef

Název Popis
CAcl::CAccessMaskArray Pole ACCESS_MASKs.
CAcl::CAceFlagArray Pole bytes.
CAcl::CAceTypeArray Pole bytes.

Veřejné konstruktory

Název Popis
CAcl::CAcl Konstruktor
CAcl::~CAcl Destruktor.

Veřejné metody

Název Popis
CAcl::GetAceCount Vrátí počet objektů řízení přístupu (ACE).
CAcl::GetAclEntries Načte položky seznamu řízení přístupu (ACL) z objektu CAcl .
CAcl::GetAclEntry Načte všechny informace o položce v objektu CAcl .
CAcl::GetLength Vrátí délku seznamu ACL.
CAcl::GetPACL Vrátí pacl (ukazatel na seznam ACL).
CAcl::IsEmpty Otestuje CAcl objekt pro položky.
CAcl::IsNull Vrátí stav objektu CAcl .
CAcl::RemoveAce Odebere konkrétní položku ACE (access-control) z objektu CAcl .
CAcl::RemoveAces Odebere všechny položky řízení přístupu (ACL) z CAcl dané CSidpoložky .
CAcl::SetEmpty CAcl Označí objekt jako prázdný.
CAcl::SetNull Označí CAcl objekt jako NULL.

Veřejné operátory

Název Popis
CAcl::operator const ACL * Přetypuje CAcl objekt na ACL strukturu.
CAcl::operator = Operátor přiřazení.

Poznámky

Struktura ACL je hlavička seznamu ACL (seznam řízení přístupu). Seznam ACL obsahuje sekvenční seznam nula nebo více ACL (položky řízení přístupu). Jednotlivé ACL jsou čísloovány od 0 do n-1, kde n je počet acEs v seznamu ACL. Při úpravách seznamu ACL aplikace odkazuje na položku řízení přístupu (ACE) v seznamu ACL podle svého indexu.

Existují dva typy seznamů ACL:

  • Volitelný

  • Systémový

Volitelný seznam ACL je řízen vlastníkem objektu nebo kýmkoli, kdo udělil WRITE_DAC přístup k objektu. Určuje přístup konkrétních uživatelů a skupin, které mohou mít objekt. Vlastník souboru může například pomocí volitelného seznamu ACL určit, kteří uživatelé a skupiny můžou a nemůžou mít k souboru přístup.

Objekt může mít také přidružené informace o zabezpečení na úrovni systému ve formě systémového seznamu ACL řízeného správcem systému. Systémový seznam ACL může správci systému umožnit auditovat všechny pokusy o získání přístupu k objektu.

Další podrobnosti najdete v diskuzi seznamu ACL v sadě Windows SDK.

Úvod k modelu řízení přístupu ve Windows najdete v tématu Řízení přístupu v sadě Windows SDK.

Požadavky

Hlavička: atlsecurity.h

CAcl::CAccessMaskArray

Pole ACCESS_MASK objektů.

typedef CAtlArray<ACCESS_MASK> CAccessMaskArray;

Poznámky

Tento typdef určuje typ pole, který lze použít k ukládání přístupových práv používaných v položkách řízení přístupu (ACL).

CAcl::CAceFlagArray

Pole bytes.

typedef CAtlArray<BYTE> CAceFlagArray;

Poznámky

Tento typedef určuje typ pole, který se používá k definování typů ovládacích příznaků specifických pro řízení přístupu (ACE). Úplný seznam možných příznaků najdete v definici ACE_HEADER .

CAcl::CAceTypeArray

Pole bytes.

typedef CAtlArray<BYTE> CAceTypeArray;

Poznámky

Tento typdef určuje typ pole, který slouží k definování povahy objektů řízení přístupu (ACE), například ACCESS_ALLOWED_ACE_TYPE nebo ACCESS_DENIED_ACE_TYPE. Úplný seznam možných typů najdete v definici ACE_HEADER.

CAcl::CAcl

Konstruktor

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

Parametry

rhs
Existující objekt CAcl.

Poznámky

Objekt CAcl lze volitelně vytvořit pomocí existujícího CAcl objektu.

CAcl::~CAcl

Destruktor.

virtual ~CAcl() throw();

Poznámky

Destruktor uvolní všechny prostředky získané objektem.

CAcl::GetAceCount

Vrátí počet objektů řízení přístupu (ACE).

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

Návratová hodnota

Vrátí počet položek ACE v objektu CAcl .

CAcl::GetAclEntries

Načte položky seznamu řízení přístupu (ACL) z objektu CAcl .

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

Parametry

pSids
Ukazatel na pole objektů CSid .

pAccessMasks
Přístupové masky.

pAceTypes
Typy položky řízení přístupu (ACE).

pAceFlags
Příznaky ACE.

Poznámky

Tato metoda vyplní parametry pole podrobnostmi o všech objektech ACE obsažených v objektu CAcl . Pokud nejsou požadovány podrobnosti pro dané pole, použijte hodnotu NULL.

Obsah každé matice odpovídá sobě navzájem, tj. první prvek CAccessMaskArray pole odpovídá prvnímu prvku v CSidArray poli atd.

Další podrobnosti o typech a příznakech ACE najdete v ACE_HEADER .

CAcl::GetAclEntry

Načte všechny informace o položce v seznamu řízení přístupu (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(...);

Parametry

nIndex
Index položky seznamu ACL, která se má načíst.

pSid
Objekt CSid , na který se vztahuje položka seznamu ACL.

Maska pMask
Maska určující oprávnění k udělení nebo odepření přístupu.

pType
Typ ACE.

pFlags
Příznaky ACE.

pObjectType
Typ objektu. Tato hodnota bude nastavena na GUID_NULL, pokud typ objektu není zadán v ACE nebo pokud ACE není OBJEKT ACE.

pInheritedObjectType
Typ zděděného objektu. Toto nastavení bude nastaveno na GUID_NULL pokud zděděný typ objektu není zadán v ACE nebo pokud ACE není OBJEKT ACE.

Poznámky

Tato metoda načte všechny informace o jednotlivých ACE a poskytne více informací než CAcl::GetAclEntries sám zpřístupní.

Další podrobnosti o typech a příznakech ACE najdete v ACE_HEADER .

CAcl::GetLength

Vrátí délku seznamu řízení přístupu (ACL).

UINT GetLength() const throw();

Návratová hodnota

Vrátí požadovanou délku v bajtech potřebných k uložení ACL struktury.

CAcl::GetPACL

Vrátí ukazatel na seznam řízení přístupu (ACL).

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

Návratová hodnota

Vrátí ukazatel na ACL strukturu.

CAcl::IsEmpty

Otestuje CAcl objekt pro položky.

bool IsEmpty() const throw();

Poznámky

Vrátí hodnotu TRUE, CAcl pokud objekt není NULL a neobsahuje žádné položky. Vrátí hodnotu FALSE, pokud CAcl je objekt null nebo obsahuje alespoň jednu položku.

CAcl::IsNull

Vrátí stav objektu CAcl .

bool IsNull() const throw();

Návratová hodnota

Vrátí hodnotu TRUE, pokud CAcl má objekt hodnotu NULL, jinak nepravda.

CAcl::operator const ACL *

Přetypuje CAcl objekt do ACL struktury (seznam řízení přístupu).

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

Poznámky

Vrátí adresu ACL struktury.

CAcl::operator =

Operátor přiřazení.

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

Parametry

rhs
Přiřazení CAcl k existujícímu objektu.

Návratová hodnota

Vrátí odkaz na aktualizovaný CAcl objekt.

CAcl::RemoveAce

Odebere konkrétní položku ACE (access-control) z objektu CAcl .

void RemoveAce(UINT nIndex) throw();

Parametry

nIndex
Index položky ACE, která se má odebrat.

Poznámky

Tato metoda je odvozena z CAtlArray::RemoveAt.

CAcl::RemoveAces

Odebere ze všech položek řízení přístupu (ACL) ze CAcl zadaných CSidpoložek .

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

Parametry

rSid
Odkaz na CSid objekt.

CAcl::SetEmpty

CAcl Označí objekt jako prázdný.

void SetEmpty() throw();

Poznámky

Může CAcl být nastavena na prázdnou hodnotu nebo hodnotu NULL: tyto dva stavy jsou odlišné.

CAcl::SetNull

Označí CAcl objekt jako NULL.

void SetNull() throw();

Poznámky

Může CAcl být nastavena na prázdnou hodnotu nebo hodnotu NULL: tyto dva stavy jsou odlišné.

Viz také

Přehled třídy
Globální funkce zabezpečení