Sdílet prostřednictvím


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í