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é CSid polož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 CSid
polož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é.