CSecurityDesc – třída
Tato třída je obálka pro SECURITY_DESCRIPTOR
strukturu.
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 CSecurityDesc
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CSecurityDesc::CSecurityDesc | Konstruktor |
CSecurityDesc::~CSecurityDesc | Destruktor. |
Veřejné metody
Název | Popis |
---|---|
CSecurityDesc::FromString | Převede popisovač zabezpečení ve formátu řetězce na platný popisovač funkčního zabezpečení. |
CSecurityDesc::GetControl | Načte informace o ovládacím prvku z popisovače zabezpečení. |
CSecurityDesc::GetDacl | Načte volitelné informace o seznamu řízení přístupu (DACL) z popisovače zabezpečení. |
CSecurityDesc::GetGroup | Načte informace o primární skupině z popisovače zabezpečení. |
CSecurityDesc::GetOwner | Načte informace vlastníka z popisovače zabezpečení. |
CSecurityDesc::GetPSECURITY_DESCRIPTOR | Vrátí ukazatel na SECURITY_DESCRIPTOR strukturu. |
CSecurityDesc::GetSacl | Načte informace ze seznamu řízení přístupu systému (SACL) z popisovače zabezpečení. |
CSecurityDesc::IsDaclAutoInherited | Určuje, jestli je seznam DACL nakonfigurovaný tak, aby podporoval automatické šíření. |
CSecurityDesc::IsDaclDefaulted | Určuje, jestli je popisovač zabezpečení nakonfigurovaný s výchozím seznamem DACL. |
CSecurityDesc::IsDaclPresent | Určuje, zda popisovač zabezpečení obsahuje seznam DACL. |
CSecurityDesc::IsDaclProtected | Určuje, zda je seznam DACL nakonfigurovaný tak, aby zabránil změnám. |
CSecurityDesc::IsGroupDefaulted | Určuje, jestli byl ve výchozím nastavení nastaven identifikátor zabezpečení skupiny popisovače zabezpečení (SID). |
CSecurityDesc::IsOwnerDefaulted | Určuje, jestli byl identifikátor SID vlastníka popisovače zabezpečení nastaven ve výchozím nastavení. |
CSecurityDesc::IsSaclAutoInherited | Určuje, jestli je SACL nakonfigurovaný tak, aby podporoval automatické šíření. |
CSecurityDesc::IsSaclDefaulted | Určuje, jestli je popisovač zabezpečení nakonfigurovaný s výchozím SACL. |
CSecurityDesc::IsSaclPresent | Určuje, zda popisovač zabezpečení obsahuje SACL. |
CSecurityDesc::IsSaclProtected | Určuje, jestli je SACL nakonfigurovaný tak, aby se zabránilo úpravám. |
CSecurityDesc::IsSelfRelative | Určuje, jestli je popisovač zabezpečení ve vlastním relativním formátu. |
CSecurityDesc::MakeAbsolute | Voláním této metody převeďte popisovač zabezpečení na absolutní formát. |
CSecurityDesc::MakeSelfRelative | Voláním této metody převedete popisovač zabezpečení na vlastní relativní formát. |
CSecurityDesc::SetControl | Nastaví řídicí bity popisovače zabezpečení. |
CSecurityDesc::SetDacl | Nastaví informace v seznamu DACL. Pokud je seznam DACL již v popisovači zabezpečení, nahradí se. |
CSecurityDesc::SetGroup | Nastaví informace o primární skupině popisovače zabezpečení absolutního formátu a nahradí všechny informace o primární skupině, které už existují. |
CSecurityDesc::SetOwner | Nastaví informace o vlastníkovi popisovače zabezpečení absolutního formátu a nahradí všechny informace o vlastníkovi, které již existují. |
CSecurityDesc::SetSacl | Nastaví informace v SACL. Pokud již v popisovači zabezpečení existuje SACL, nahradí se. |
CSecurityDesc::ToString | Převede popisovač zabezpečení na formát řetězce. |
Veřejné operátory
Název | Popis |
---|---|
CSecurityDesc::operator const SECURITY_DESCRIPTOR * | Vrátí ukazatel na SECURITY_DESCRIPTOR strukturu. |
CSecurityDesc::operator = | Operátor přiřazení. |
Poznámky
Struktura SECURITY_DESCRIPTOR
obsahuje informace o zabezpečení přidružené k objektu. Aplikace používají tuto strukturu k nastavení a dotazování stavu zabezpečení objektu. Viz také AtlGetSecurityDescriptor.
Aplikace by neměly strukturu upravovat SECURITY_DESCRIPTOR
přímo, a místo toho by měly používat metody třídy poskytnuté.
Ú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
CSecurityDesc::CSecurityDesc
Konstruktor
CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);
Parametry
rhs
Objekt CSecurityDesc
nebo SECURITY_DESCRIPTOR
struktura, které chcete přiřadit k novému CSecurityDesc
objektu.
Poznámky
Objekt CSecurityDesc
lze volitelně vytvořit pomocí SECURITY_DESCRIPTOR
struktury nebo dříve definovaného CSecurityDesc
objektu.
CSecurityDesc::~CSecurityDesc
Destruktor.
virtual ~CSecurityDesc() throw();
Poznámky
Destruktor uvolní všechny přidělené prostředky.
CSecurityDesc::FromString
Převede popisovač zabezpečení ve formátu řetězce na platný popisovač funkčního zabezpečení.
bool FromString(LPCTSTR pstr) throw(...);
Parametry
pstr
Ukazatel na řetězec ukončený hodnotou null, který obsahuje popisovač zabezpečení ve formátu řetězce, který se má převést.
Návratová hodnota
Vrátí hodnotu true při úspěchu. Vyvolá výjimku při selhání.
Poznámky
Řetězec lze vytvořit pomocí CSecurityDesc::ToString. Převod popisovače zabezpečení na řetězec usnadňuje ukládání a přenos.
Tato metoda volá ConvertStringSecurityDescriptorToSecurityDescriptor.
CSecurityDesc::GetControl
Načte informace o ovládacím prvku z popisovače zabezpečení.
bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();
Parametry
psdc
Ukazatel na SECURITY_DESCRIPTOR_CONTROL
strukturu, která přijímá informace o ovládacím prvku popisovače zabezpečení.
Návratová hodnota
Vrátí hodnotu true, pokud je metoda úspěšná, false, pokud selže.
Poznámky
Tato metoda volá GetSecurityDescriptorControl.
CSecurityDesc::GetDacl
Načte volitelné informace o seznamu řízení přístupu (DACL) z popisovače zabezpečení.
bool GetDacl(
CDacl* pDacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parametry
pDacl
Ukazatel na CDacl
strukturu, do které se uloží kopie seznamu DACL popisovače zabezpečení. Pokud existuje volitelný seznam ACL, metoda nastaví pDacl na adresu volitelného seznamu ACL popisovače zabezpečení. Pokud volitelný seznam ACL neexistuje, neuloží se žádná hodnota.
pbPresent
Ukazatel na hodnotu, která označuje přítomnost volitelného seznamu ACL v zadaném popisovači zabezpečení. Pokud popisovač zabezpečení obsahuje volitelný seznam ACL, nastaví se tento parametr na hodnotu true. Pokud popisovač zabezpečení neobsahuje volitelný seznam ACL, nastaví se tento parametr na hodnotu false.
pbDefaulted
Ukazatel na příznak nastavený na hodnotu příznaku SE_DACL_DEFAULTED ve SECURITY_DESCRIPTOR_CONTROL
struktuře, pokud pro popisovač zabezpečení existuje volitelný seznam ACL. Pokud je tento příznak pravdivý, volitelný seznam ACL byl načten výchozím mechanismem; pokud je false, volitelný seznam ACL byl explicitně určen uživatelem.
Návratová hodnota
Vrátí hodnotu true, pokud je metoda úspěšná, false, pokud selže.
CSecurityDesc::GetGroup
Načte informace o primární skupině z popisovače zabezpečení.
bool GetGroup(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parametry
pSid
Ukazatel na CSid (identifikátor zabezpečení), který obdrží kopii skupiny uložené v seznamu CDacl.
pbDefaulted
Ukazatel na příznak nastavený na hodnotu SE_GROUP_DEFAULTED příznak ve SECURITY_DESCRIPTOR_CONTROL
struktuře, když metoda vrátí.
Návratová hodnota
Vrátí hodnotu true, pokud je metoda úspěšná, false, pokud selže.
CSecurityDesc::GetOwner
Načte informace vlastníka z popisovače zabezpečení.
bool GetOwner(
CSid* pSid,
bool* pbDefaulted = NULL) const throw(...);
Parametry
pSid
Ukazatel na CSid (identifikátor zabezpečení), který obdrží kopii skupiny uložené v seznamu CDacl.
pbDefaulted
Ukazatel na příznak nastavený na hodnotu SE_OWNER_DEFAULTED příznak ve SECURITY_DESCRIPTOR_CONTROL
struktuře, když metoda vrátí.
Návratová hodnota
Vrátí hodnotu true, pokud je metoda úspěšná, false, pokud selže.
CSecurityDesc::GetPSECURITY_DESCRIPTOR
Vrátí ukazatel na SECURITY_DESCRIPTOR
strukturu.
const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();
Návratová hodnota
Vrátí ukazatel na strukturu SECURITY_DESCRIPTOR .
CSecurityDesc::GetSacl
Načte informace ze seznamu řízení přístupu systému (SACL) z popisovače zabezpečení.
bool GetSacl(
CSacl* pSacl,
bool* pbPresent = NULL,
bool* pbDefaulted = NULL) const throw(...);
Parametry
pSacl
Ukazatel na CSacl
strukturu, do které se uloží kopie popisovače zabezpečení SACL. Pokud existuje systémový seznam ACL, metoda nastaví pSacl na adresu systémového seznamu ACL popisovače zabezpečení. Pokud systémový seznam ACL neexistuje, neuloží se žádná hodnota.
pbPresent
Ukazatel na příznak, který nastaví metodu označující přítomnost systémového seznamu ACL v zadaném popisovači zabezpečení. Pokud popisovač zabezpečení obsahuje systémový seznam ACL, je tento parametr nastaven na hodnotu true. Pokud popisovač zabezpečení neobsahuje systémový seznam ACL, je tento parametr nastaven na hodnotu false.
pbDefaulted
Ukazatel na příznak nastavený na hodnotu příznaku SE_SACL_DEFAULTED ve SECURITY_DESCRIPTOR_CONTROL
struktuře, pokud existuje seznam ACL systému pro popisovač zabezpečení.
Návratová hodnota
Vrátí hodnotu true, pokud je metoda úspěšná, false, pokud selže.
CSecurityDesc::IsDaclAutoInherited
Určuje, jestli je volitelný seznam řízení přístupu (DACL) nakonfigurovaný tak, aby podporoval automatické šíření.
bool IsDaclAutoInherited() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud popisovač zabezpečení obsahuje seznam DACL, který je nastavený tak, aby podporoval automatické šíření zděděných položek řízení přístupu (ACL) do existujících podřízených objektů. V opačném případě vrátí hodnotu false.
Poznámky
Systém tento bit nastaví, když provede algoritmus automatické dědičnosti objektu a jeho stávajících podřízených objektů.
CSecurityDesc::IsDaclDefaulted
Určuje, jestli je popisovač zabezpečení nakonfigurovaný s výchozím volitelným seznamem řízení přístupu (DACL).
bool IsDaclDefaulted() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud popisovač zabezpečení obsahuje výchozí seznam DACL, jinak false.
Poznámky
Tento příznak může ovlivnit, jak systém zachází se seznamem DACL s ohledem na dědičnost položky řízení přístupu (ACE). Pokud například tvůrce objektu nezadá seznam DACL, objekt obdrží výchozí seznam DACL z přístupového tokenu autora. Systém tento příznak ignoruje, pokud není nastavený příznak SE_DACL_PRESENT.
Tento příznak se používá k určení, jak se má vypočítat konečný seznam DACL objektu a který není fyzicky uložen v ovládacím prvku popisovače zabezpečení zabezpečitelného objektu.
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetDacl metoda.
CSecurityDesc::IsDaclPresent
Určuje, jestli popisovač zabezpečení obsahuje volitelný seznam řízení přístupu (DACL).
bool IsDaclPresent() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud popisovač zabezpečení obsahuje seznam DACL, jinak false.
Poznámky
Pokud tento příznak není nastavený nebo pokud je tento příznak nastaven a daCL má hodnotu NULL, popisovač zabezpečení umožňuje úplný přístup všem.
Tento příznak slouží k uložení informací o zabezpečení určených volajícím, dokud není popisovač zabezpečení přidružený k zabezpečitelnému objektu. Jakmile je popisovač zabezpečení přidružený k zabezpečitelnému objektu, příznak SE_DACL_PRESENT je vždy nastaven v ovládacím prvku popisovače zabezpečení.
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetDacl metoda.
CSecurityDesc::IsDaclProtected
Určuje, jestli je volitelný seznam řízení přístupu (DACL) nakonfigurovaný tak, aby se zabránilo úpravám.
bool IsDaclProtected() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud je seznam DACL nakonfigurovaný tak, aby se zabránilo úpravě popisovače zabezpečení zděděnými položkami řízení přístupu (ACL). V opačném případě vrátí hodnotu false.
Poznámky
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetDacl metoda.
Tato metoda podporuje automatické šíření zděděných ACL.
CSecurityDesc::IsGroupDefaulted
Určuje, jestli byl ve výchozím nastavení nastaven identifikátor zabezpečení skupiny popisovače zabezpečení (SID).
bool IsGroupDefaulted() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud je výchozí mechanismus, nikoli původní zprostředkovatel popisovače zabezpečení, za předpokladu, že identifikátor SID skupiny popisovače zabezpečení. V opačném případě vrátí hodnotu false.
Poznámky
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetGroup metoda.
CSecurityDesc::IsOwnerDefaulted
Určuje, jestli byl identifikátor zabezpečení (SID) popisovače zabezpečení nastaven ve výchozím nastavení.
bool IsOwnerDefaulted() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud je výchozí mechanismus, nikoli původní zprostředkovatel popisovače zabezpečení, za předpokladu, že identifikátor SID vlastníka popisovače zabezpečení. V opačném případě vrátí hodnotu false.
Poznámky
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetOwner metoda.
CSecurityDesc::IsSaclAutoInherited
Určuje, jestli je seznam řízení přístupu (SACL) systému nakonfigurovaný tak, aby podporoval automatické šíření.
bool IsSaclAutoInherited() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud popisovač zabezpečení obsahuje SACL, který je nastaven tak, aby podporoval automatické šíření zděděných položek řízení přístupu (ACL) do existujících podřízených objektů. V opačném případě vrátí hodnotu false.
Poznámky
Systém tento bit nastaví, když provede algoritmus automatické dědičnosti objektu a jeho stávajících podřízených objektů.
CSecurityDesc::IsSaclDefaulted
Určuje, jestli je popisovač zabezpečení nakonfigurovaný s výchozím seznamem řízení přístupu systému (SACL).
bool IsSaclDefaulted() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud popisovač zabezpečení obsahuje výchozí SACL, jinak false.
Poznámky
Tento příznak může ovlivnit způsob, jakým systém zachází se SACL, s ohledem na dědičnost položky řízení přístupu (ACE). Systém tento příznak ignoruje, pokud není nastavený příznak SE_SACL_PRESENT.
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetSacl metoda.
CSecurityDesc::IsSaclPresent
Určuje, jestli popisovač zabezpečení obsahuje seznam řízení přístupu systému (SACL).
bool IsSaclPresent() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud popisovač zabezpečení obsahuje SACL, jinak false.
Poznámky
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetSacl metoda.
CSecurityDesc::IsSaclProtected
Určuje, jestli je seznam řízení přístupu (SACL) systému nakonfigurovaný tak, aby se zabránilo úpravám.
bool IsSaclProtected() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud je SACL nakonfigurován tak, aby zabránilo úpravě popisovače zabezpečení zděděnými položkami řízení přístupu (ACL). V opačném případě vrátí hodnotu false.
Poznámky
Chcete-li nastavit tento příznak, použijte CSecurityDesc::SetSacl metoda.
Tato metoda podporuje automatické šíření zděděných ACL.
CSecurityDesc::IsSelfRelative
Určuje, jestli je popisovač zabezpečení ve vlastním relativním formátu.
bool IsSelfRelative() const throw();
Návratová hodnota
Vrátí hodnotu true, pokud je popisovač zabezpečení ve vlastním relativním formátu se všemi informacemi o zabezpečení v souvislé bloku paměti. Vrátí hodnotu false, pokud je popisovač zabezpečení v absolutním formátu. Další informace naleznete v tématu Absolutní a sebe relativní popisovače zabezpečení.
CSecurityDesc::MakeAbsolute
Voláním této metody převeďte popisovač zabezpečení na absolutní formát.
bool MakeAbsolute() throw(...);
Návratová hodnota
Vrátí hodnotu true, pokud je metoda úspěšná, jinak false.
Poznámky
Popisovač zabezpečení v absolutním formátu obsahuje ukazatele na informace, které obsahuje, a nikoli samotné informace. Popisovač zabezpečení ve vlastním relativním formátu obsahuje informace v souvislé oblasti paměti. V popisovači SECURITY_DESCRIPTOR
vlastního zabezpečení vždy spustí struktura informace, ale ostatní komponenty popisovače zabezpečení mohou sledovat strukturu v libovolném pořadí. Místo použití adres paměti jsou komponenty popisovače zabezpečení relativní k sobě identifikovány posuny od začátku popisovače zabezpečení. Tento formát je užitečný v případě, že popisovač zabezpečení musí být uložen na disku nebo přenášen pomocí komunikačního protokolu. Další informace naleznete v tématu Absolutní a sebe relativní popisovače zabezpečení.
CSecurityDesc::MakeSelfRelative
Voláním této metody převedete popisovač zabezpečení na vlastní relativní formát.
bool MakeSelfRelative() throw(...);
Návratová hodnota
Vrátí hodnotu true, pokud je metoda úspěšná, jinak false.
Poznámky
Popisovač zabezpečení v absolutním formátu obsahuje ukazatele na informace, které obsahuje, a nikoli samotné informace. Popisovač zabezpečení ve vlastním relativním formátu obsahuje informace v souvislé oblasti paměti. V popisovači SECURITY_DESCRIPTOR
vlastního zabezpečení vždy spustí struktura informace, ale ostatní komponenty popisovače zabezpečení mohou sledovat strukturu v libovolném pořadí. Místo použití adres paměti jsou komponenty popisovače zabezpečení identifikovány posuny od začátku popisovače zabezpečení. Tento formát je užitečný v případě, že popisovač zabezpečení musí být uložen na disku nebo přenášen pomocí komunikačního protokolu. Další informace naleznete v tématu Absolutní a sebe relativní popisovače zabezpečení.
CSecurityDesc::operator =
Operátor přiřazení.
CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);
Parametry
rhs
Struktura SECURITY_DESCRIPTOR
nebo CSecurityDesc
objekt, které se mají k objektu CSecurityDesc
přiřadit.
Návratová hodnota
Vrátí aktualizovaný CSecurityDesc
objekt.
CSecurityDesc::operator const SECURITY_DESCRIPTOR *
Přetypuje hodnotu na ukazatel na SECURITY_DESCRIPTOR
strukturu.
operator const SECURITY_DESCRIPTOR *() const throw();
CSecurityDesc::SetControl
Nastaví řídicí bity popisovače zabezpečení.
bool SetControl(
SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();
Parametry
ControlBitsOfInterest
SECURITY_DESCRIPTOR_CONTROL maska označující ovládací bity, které se mají nastavit. Seznam příznaků, které lze nastavit, naleznete v tématu SetSecurityDescriptorControl.
ControlBitsToSet
SECURITY_DESCRIPTOR_CONTROL maska označující nové hodnoty bitů ovládacího prvku určené maskou ControlBitsOfInterest . Tento parametr může být kombinací příznaků uvedených pro ControlBitsOfInterest parametr.
Návratová hodnota
Při úspěchu vrátí hodnotu true, při neúspěchu hodnotu false.
Poznámky
Tato metoda volá SetSecurityDescriptorControl.
CSecurityDesc::SetDacl
Nastaví informace v volitelném seznamu řízení přístupu (DACL). Pokud je seznam DACL již v popisovači zabezpečení, nahradí se.
inline void SetDacl(
bool bPresent = true,
bool bDefaulted = false) throw(...);
inline void SetDacl(
const CDacl& Dacl,
bool bDefaulted = false) throw(...);
Parametry
Dacl
Odkaz na CDacl
objekt určující seznam DACL pro popisovač zabezpečení. Tento parametr nesmí být NULL. Chcete-li nastavit seznam DACL s hodnotou NULL v popisovači zabezpečení, měla by se první forma metody použít s hodnotou bPresent nastavenou na false.
bPresent
Určuje příznak označující přítomnost seznamu DACL v popisovači zabezpečení. Pokud je tento parametr pravdivý, metoda nastaví příznak SE_DACL_PRESENT ve SECURITY_DESCRIPTOR_CONTROL
struktuře a používá hodnoty v Dacl a bDefaulted parametry. Pokud je false, metoda vymaže příznak SE_DACL_PRESENT a bDefaulted se ignoruje.
bDefaulted
Určuje příznak označující zdroj seznamu DACL. Pokud je tento příznak pravdivý, načetl se seznam DACL některým výchozím mechanismem. Pokud je hodnota false, seznam DACL byl explicitně určen uživatelem. Metoda uloží tuto hodnotu do příznaku SECURITY_DESCRIPTOR_CONTROL
SE_DACL_DEFAULTED struktury. Pokud tento parametr není zadaný, příznak SE_DACL_DEFAULTED se vymaže.
Návratová hodnota
Při úspěchu vrátí hodnotu true, při neúspěchu hodnotu false.
Poznámky
Mezi prázdným a neexistujíným seznamem DACL je důležitý rozdíl. Pokud je seznam DACL prázdný, neobsahuje žádné položky řízení přístupu a nebyla explicitně udělena žádná přístupová práva. V důsledku toho je přístup k objektu implicitně odepřen. Pokud objekt nemá žádný seznam DACL, na druhé straně k objektu není přiřazena žádná ochrana a je udělena jakákoli žádost o přístup.
CSecurityDesc::SetGroup
Nastaví informace o primární skupině popisovače zabezpečení absolutního formátu a nahradí všechny informace o primární skupině, které už existují.
bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);
Parametry
Sid
Odkaz na objekt CSid pro novou primární skupinu popisovače zabezpečení. Tento parametr nesmí být NULL. Popisovač zabezpečení lze označit jako nezařazení dacl nebo SACL, ale musí mít skupinu a vlastníka, i když se jedná o identifikátor SID s hodnotou NULL (což je integrovaný identifikátor SID se zvláštním významem).
bDefaulted
Určuje, zda informace o primární skupině byly odvozeny z výchozího mechanismu. Pokud je tato hodnota pravdivá, jedná se o výchozí informace a metoda uloží tuto hodnotu jako příznak SE_GROUP_DEFAULTED ve struktuře SECURITY_DESCRIPTOR_CONTROL
. Pokud je tento parametr nulový, příznak SE_GROUP_DEFAULTED se vymaže.
Návratová hodnota
Při úspěchu vrátí hodnotu true, při neúspěchu hodnotu false.
CSecurityDesc::SetOwner
Nastaví informace o vlastníkovi popisovače zabezpečení absolutního formátu. Nahradí všechny informace o vlastníkovi, které už jsou k dispozici.
bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);
Parametry
Sid
Objekt CSid pro nového primárního vlastníka deskriptoru zabezpečení. Tento parametr nesmí být NULL.
bDefaulted
Určuje, zda jsou informace vlastníka odvozeny z výchozího mechanismu. Pokud je tato hodnota pravdivá, jedná se o výchozí informace. Metoda uloží tuto hodnotu jako příznak SE_OWNER_DEFAULTED ve struktuře SECURITY_DESCRIPTOR_CONTROL
. Pokud je tento parametr nula, příznak SE_OWNER_DEFAULTED se vymaže.
Návratová hodnota
Při úspěchu vrátí hodnotu true, při neúspěchu hodnotu false.
CSecurityDesc::SetSacl
Nastaví informace v seznamu řízení přístupu systému (SACL). Pokud již v popisovači zabezpečení existuje SACL, nahradí se.
bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);
Parametry
Sacl
Ukazatel na CSacl
objekt určující SACL pro popisovač zabezpečení. Tento parametr nesmí být NULL a musí být objektem CSacl. Na rozdíl od seznamů DACLs neexistuje žádný rozdíl mezi hodnotou NULL a prázdným SACL, protože objekty SACL nezadávají přístupová práva, pouze informace o auditování.
bDefaulted
Určuje příznak označující zdroj SACL. Pokud je tento příznak pravdivý, nějaký výchozí mechanismus načetl SACL. Pokud je false, sacl byl explicitně určen uživatelem. Metoda uloží tuto hodnotu do příznaku SECURITY_DESCRIPTOR_CONTROL
SE_SACL_DEFAULTED struktury. Pokud tento parametr není zadaný, příznak SE_SACL_DEFAULTED se vymaže.
Návratová hodnota
Při úspěchu vrátí hodnotu true, při neúspěchu hodnotu false.
CSecurityDesc::ToString
Převede popisovač zabezpečení na formát řetězce.
bool ToString(
CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
SACL_SECURITY_INFORMATION) const throw(...);
Parametry
pstr
Ukazatel na řetězec ukončený hodnotou null, který obdrží popisovač zabezpečení ve formátu řetězce.
si
Určuje kombinaci SECURITY_INFORMATION bitových příznaků označující komponenty popisovače zabezpečení, které mají být zahrnuty do výstupního řetězce.
Návratová hodnota
Při úspěchu vrátí hodnotu true, při neúspěchu hodnotu false.
Poznámky
Jakmile je popisovač zabezpečení ve formátu řetězce, může být snadněji uložen nebo přenášen. CSecurityDesc::FromString
Pomocí metody převeďte řetězec zpět na popisovač zabezpečení.
Parametr si může obsahovat následující příznaky SECURITY_INFORMATION:
Hodnota | Význam |
---|---|
OWNER_SECURITY_INFORMATION | Zahrňte vlastníka. |
GROUP_SECURITY_INFORMATION | Zahrňte primární skupinu. |
DACL_SECURITY_INFORMATION | Zahrňte seznam DACL. |
SACL_SECURITY_INFORMATION | Zahrňte SACL. |
Pokud je seznam DACL null a řídicí bit SE_DACL_PRESENT je nastaven v popisovači vstupního zabezpečení, metoda selže.
Pokud je seznam DACL null a bit ovládacího prvku SE_DACL_PRESENT není nastaven ve vstupním popisovači zabezpečení, výsledný řetězec popisovače zabezpečení nemá komponentu D: . Další podrobnosti najdete v tématu Formát řetězce popisovače zabezpečení.
Tato metoda volá ConvertStringSecurityDescriptorToSecurityDescriptor.
Viz také
Ukázka zabezpečení
SECURITY_DESCRIPTOR
Přehled třídy
Globální funkce zabezpečení