CDacl – třída
Tato třída je obálka pro strukturu DACL (volitelného seznamu ří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 CDacl : public CAcl
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CDacl::CDacl | Konstruktor |
CDacl::~CDacl | Destruktor. |
Veřejné metody
Název | Popis |
---|---|
CDacl::AddAllowedAce | Přidá do objektu CDacl povolenou položku ACE (access-control). |
CDacl::AddDeniedAce | Přidá do objektu CDacl odepřenou ACE. |
CDacl::GetAceCount | Vrátí počet ACL (položky řízení přístupu) v objektu CDacl . |
CDacl::RemoveAce | Odebere konkrétní položku ACE (access-control) z objektu CDacl . |
CDacl::RemoveAllAces | Odebere všechny objekty ACL obsažené v objektu CDacl . |
Veřejné operátory
Název | Popis |
---|---|
CDacl::operator = | Operátor přiřazení. |
Poznámky
Popisovač zabezpečení objektu může obsahovat seznam DACL. Seznam DACL obsahuje nula nebo více ACL (položky řízení přístupu), které identifikují uživatele a skupiny, kteří mají přístup k objektu. Pokud je seznam DACL prázdný (to znamená, že obsahuje nulové řízení přístupu), není explicitně udělen žádný přístup, takže přístup je implicitně odepřen. Pokud však popisovač zabezpečení objektu nemá seznam DACL, objekt je nechráněný a každý má úplný přístup.
Chcete-li načíst seznam DACL objektu, musíte být vlastníkem objektu nebo mít k objektu READ_CONTROL přístup. Pokud chcete změnit seznam DACL objektu, musíte mít WRITE_DAC přístup k objektu.
Použijte metody třídy, které jsou k dispozici k vytvoření, přidání, odebrání a odstranění ACL z objektu CDacl
. Viz také AtlGetDacl a AtlSetDacl.
Úvod k modelu řízení přístupu ve Windows najdete v tématu Řízení přístupu v sadě Windows SDK.
Hierarchie dědičnosti
CDacl
Požadavky
Hlavička: atlsecurity.h
CDacl::AddAllowedAce
Přidá do objektu CDacl
povolenou položku ACE (access-control).
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(...);
Parametry
rSid
Objekt CSid .
AccessMask
Určuje masku přístupových práv, která mají být povolena pro zadaný CSid
objekt.
AceFlags
Sada bitových příznaků, které řídí dědičnost ACE.
pObjectType
Typ objektu.
pInheritedObjectType
Typ zděděného objektu.
Návratová hodnota
Vrátí hodnotu TRUE, pokud je ACE přidána do objektu CDacl
, FALSE při selhání.
Poznámky
Objekt CDacl
obsahuje nula nebo více ACL (položky řízení přístupu), které identifikují uživatele a skupiny, kteří mají přístup k objektu. Tato metoda přidá ACE, která umožňuje přístup k objektu CDacl
.
Popis různých příznaků, které lze nastavit v parametruAceFlags
, najdete v ACE_HEADER.
CDacl::AddDeniedAce
Přidá objektu odepřenou položku ACE (položka CDacl
řízení přístupu).
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(...);
Parametry
rSid
Objekt CSid
.
AccessMask
Určuje masku přístupových práv, která mají být odepřena pro zadaný CSid
objekt.
AceFlags
Sada bitových příznaků, které řídí dědičnost ACE. Výchozí hodnota je 0 v první podobě metody.
pObjectType
Typ objektu.
pInheritedObjectType
Typ zděděného objektu.
Návratová hodnota
Vrátí hodnotu TRUE, pokud je ACE přidána do objektu CDacl
, FALSE při selhání.
Poznámky
Objekt CDacl
obsahuje nula nebo více ACL (položky řízení přístupu), které identifikují uživatele a skupiny, kteří mají přístup k objektu. Tato metoda přidá ACE, která odepře přístup k objektu CDacl
.
Popis různých příznaků, které lze nastavit v parametruAceFlags
, najdete v ACE_HEADER.
CDacl::CDacl
Konstruktor
CDacl (const ACL& rhs) throw(...);
CDacl () throw();
Parametry
rhs
Existující ACL
struktura (seznam řízení přístupu)
Poznámky
Objekt CDacl
lze volitelně vytvořit pomocí existující ACL
struktury. Je důležité si uvědomit, že jako tento parametr by se měl předávat pouze seznam DACL (volitelný seznam řízení přístupu) a ne SACL (seznam řízení přístupu systému). V buildech ladění způsobí předání SACL výraz ASSERT. V buildech vydaných verzí bude předání SACL způsobit ignorování ACL (položky řízení přístupu) v seznamu ACL a nedojde k žádné chybě.
CDacl::~CDacl
Destruktor.
~CDacl () throw();
Poznámky
Destruktor uvolní všechny prostředky získané objektem, včetně všech ACL (položek řízení přístupu) pomocí CDacl::RemoveAllAces.
CDacl::GetAceCount
Vrátí počet ACL (položky řízení přístupu) v objektu CDacl
.
UINT GetAceCount() const throw();
Návratová hodnota
Vrátí počet ACL obsažených v objektu CDacl
.
CDacl::operator =
Operátor přiřazení.
CDacl& operator= (const ACL& rhs) throw(...);
Parametry
rhs
Seznam ACL (seznam řízení přístupu) pro přiřazení k existujícímu objektu.
Návratová hodnota
Vrátí odkaz na aktualizovaný CDacl
objekt.
Poznámky
Měli byste zajistit, abyste této funkci předali pouze seznam DACL (volitelný seznam řízení přístupu). Předání seznamu řízení přístupu (SACL) této funkci způsobí assert v buildech ladění, ale v buildech vydaných verzí nebude mít žádnou chybu.
CDacl::RemoveAce
Odebere konkrétní položku ACE (access-control) z objektu CDacl
.
void RemoveAce(UINT nIndex) throw();
Parametry
nIndex
Index položky ACE, která se má odebrat.
Poznámky
Tato metoda je odvozena z CAtlArray::RemoveAt.
CDacl::RemoveAllAces
Odebere všechny položky řízení přístupu (ACL) obsažené v objektu CDacl
.
void RemoveAllAces() throw();
Poznámky
Odebere každou ACE
strukturu (pokud existuje) (přístupová položka) v objektu CDacl
.
Viz také
Ukázka zabezpečení
CAcl – třída
Seznamy acl
Esa
Přehled třídy
Globální funkce zabezpečení