Udostępnij za pośrednictwem


Klasa CSecurityDesc

Ta klasa jest otoką struktury SECURITY_DESCRIPTOR .

Ważne

Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.

Składnia

class CSecurityDesc

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CSecurityDesc::CSecurityDesc Konstruktor.
CSecurityDesc::~CSecurityDesc Destruktora.

Metody publiczne

Nazwa/nazwisko opis
CSecurityDesc::FromString Konwertuje deskryptor zabezpieczeń w formacie ciągu na prawidłowy deskryptor zabezpieczeń funkcjonalnych.
CSecurityDesc::GetControl Pobiera informacje o kontroli z deskryptora zabezpieczeń.
CSecurityDesc::GetDacl Pobiera informacje listy kontroli dostępu (DACL) według uznania z deskryptora zabezpieczeń.
CSecurityDesc::GetGroup Pobiera informacje o grupie podstawowej z deskryptora zabezpieczeń.
CSecurityDesc::GetOwner Pobiera informaton właściciela z deskryptora zabezpieczeń.
CSecurityDesc::GetPSECURITY_DESCRIPTOR Zwraca wskaźnik do SECURITY_DESCRIPTOR struktury.
CSecurityDesc::GetSacl Pobiera informacje dotyczące listy kontroli dostępu systemu (SACL) z deskryptora zabezpieczeń.
CSecurityDesc::IsDaclAutoInherited Określa, czy lista DACL jest skonfigurowana do obsługi automatycznej propagacji.
CSecurityDesc::IsDaclDefaulted Określa, czy deskryptor zabezpieczeń jest skonfigurowany z domyślną listą DACL.
CSecurityDesc::IsDaclPresent Określa, czy deskryptor zabezpieczeń zawiera listę DACL.
CSecurityDesc::IsDaclProtected Określa, czy lista DACL jest skonfigurowana w celu zapobiegania modyfikacjom.
CSecurityDesc::IsGroupDefaulted Określa, czy deskryptora zabezpieczeń grupy (SID) został ustawiony domyślnie.
CSecurityDesc::IsOwnerDefaulted Określa, czy identyfikator SID właściciela deskryptora zabezpieczeń został ustawiony domyślnie.
CSecurityDesc::IsSaclAutoInherited Określa, czy SACL jest skonfigurowany do obsługi automatycznej propagacji.
CSecurityDesc::IsSaclDefaulted Określa, czy deskryptor zabezpieczeń jest skonfigurowany z domyślnym SACL.
CSecurityDesc::IsSaclPresent Określa, czy deskryptor zabezpieczeń zawiera SACL.
CSecurityDesc::IsSaclProtected Określa, czy SACL jest skonfigurowany w celu zapobiegania modyfikacjom.
CSecurityDesc::IsSelfRelative Określa, czy deskryptor zabezpieczeń jest w formacie względnym.
CSecurityDesc::MakeAbsolute Wywołaj tę metodę, aby przekonwertować deskryptor zabezpieczeń na format bezwzględny.
CSecurityDesc::MakeSelfRelative Wywołaj tę metodę, aby przekonwertować deskryptor zabezpieczeń na format względny.
CSecurityDesc::SetControl Ustawia bity kontrolne deskryptora zabezpieczeń.
CSecurityDesc::SetDacl Ustawia informacje na liście DACL. Jeśli lista DACL jest już obecna w deskryptorze zabezpieczeń, zostanie zamieniona.
CSecurityDesc::SetGroup Ustawia podstawowe informacje o grupach deskryptora zabezpieczeń w formacie bezwzględnym, zastępując wszystkie informacje o podstawowej grupie, które już istnieją.
CSecurityDesc::SetOwner Ustawia informacje właściciela deskryptora zabezpieczeń w formacie bezwzględnym, zastępując wszystkie informacje o właścicielach, które już istnieją.
CSecurityDesc::SetSacl Ustawia informacje w SACL. Jeśli sacL jest już obecny w deskryptorze zabezpieczeń, zostanie zastąpiony.
CSecurityDesc::ToString Konwertuje deskryptor zabezpieczeń na format ciągu.

Operatory publiczne

Nazwa/nazwisko opis
CSecurityDesc::operator const SECURITY_DESCRIPTOR * Zwraca wskaźnik do SECURITY_DESCRIPTOR struktury.
CSecurityDesc::operator = Operator przypisania.

Uwagi

Struktura SECURITY_DESCRIPTOR zawiera informacje o zabezpieczeniach skojarzone z obiektem. Aplikacje używają tej struktury do ustawiania stanu zabezpieczeń obiektu i wykonywania względem niego zapytań. Zobacz również : AtlGetSecurityDescriptor.

Aplikacje nie powinny bezpośrednio modyfikować SECURITY_DESCRIPTOR struktury i zamiast tego powinny używać podanych metod klasy.

Aby zapoznać się z wprowadzeniem do modelu kontroli dostępu w systemie Windows, zobacz Kontrola dostępu w zestawie Windows SDK.

Wymagania

Nagłówek: atlsecurity.h

CSecurityDesc::CSecurityDesc

Konstruktor.

CSecurityDesc() throw();
CSecurityDesc(const CSecurityDesc& rhs) throw(... );
CSecurityDesc(const SECURITY_DESCRIPTOR& rhs) throw(...);

Parametry

Rhs
Obiekt CSecurityDesc lub SECURITY_DESCRIPTOR struktura do przypisania do nowego CSecurityDesc obiektu.

Uwagi

Obiekt CSecurityDesc można opcjonalnie utworzyć przy użyciu SECURITY_DESCRIPTOR struktury lub wcześniej zdefiniowanego CSecurityDesc obiektu.

CSecurityDesc::~CSecurityDesc

Destruktora.

virtual ~CSecurityDesc() throw();

Uwagi

Destruktor zwalnia wszystkie przydzielone zasoby.

CSecurityDesc::FromString

Konwertuje deskryptor zabezpieczeń w formacie ciągu na prawidłowy deskryptor zabezpieczeń funkcjonalnych.

bool FromString(LPCTSTR pstr) throw(...);

Parametry

pstr
Wskaźnik do ciągu zakończonego wartością null, który zawiera deskryptor zabezpieczeń formatu ciągu, który ma zostać przekonwertowany.

Wartość zwracana

Zwraca wartość true w przypadku powodzenia. Zgłasza wyjątek dotyczący błędu.

Uwagi

Ciąg można utworzyć przy użyciu języka CSecurityDesc::ToString. Konwertowanie deskryptora zabezpieczeń na ciąg ułatwia przechowywanie i przesyłanie.

Ta metoda wywołuje metodę ConvertStringSecurityDescriptorToSecurityDescriptor.

CSecurityDesc::GetControl

Pobiera informacje o kontroli z deskryptora zabezpieczeń.

bool GetControl(SECURITY_DESCRIPTOR_CONTROL* psdc) const throw();

Parametry

psdc
Wskaźnik do struktury odbierającej SECURITY_DESCRIPTOR_CONTROL informacje kontrolne deskryptora zabezpieczeń.

Wartość zwracana

Zwraca wartość true, jeśli metoda powiedzie się, wartość false, jeśli zakończy się niepowodzeniem.

Uwagi

Ta metoda wywołuje metodę GetSecurityDescriptorControl.

CSecurityDesc::GetDacl

Pobiera informacje listy kontroli dostępu (DACL) według uznania z deskryptora zabezpieczeń.

bool GetDacl(
    CDacl* pDacl,
    bool* pbPresent = NULL,
    bool* pbDefaulted = NULL) const throw(...);

Parametry

pDacl
Wskaźnik do CDacl struktury, w której ma być przechowywana kopia listy DACL deskryptora zabezpieczeń. Jeśli istnieje uznaniowa lista ACL, metoda ustawia element pDacl na adres uznaniowej listy ACL deskryptora zabezpieczeń. Jeśli uznaniowa lista ACL nie istnieje, żadna wartość nie jest przechowywana.

pbPresent
Wskaźnik do wartości, która wskazuje obecność uznaniowej listy ACL w określonym deskryptorze zabezpieczeń. Jeśli deskryptor zabezpieczeń zawiera uznaniową listę ACL, ten parametr jest ustawiony na wartość true. Jeśli deskryptor zabezpieczeń nie zawiera uznaniowej listy ACL, ten parametr jest ustawiony na wartość false.

pbDefaulted
Wskaźnik do flagi ustawionej na wartość flagi SE_DACL_DEFAULTED w SECURITY_DESCRIPTOR_CONTROL strukturze, jeśli istnieje uznaniowa lista ACL dla deskryptora zabezpieczeń. Jeśli ta flaga ma wartość true, dyskrecjonalne listy ACL zostały pobrane domyślnie przez mechanizm; jeśli wartość false, uznaniowa lista ACL została jawnie określona przez użytkownika.

Wartość zwracana

Zwraca wartość true, jeśli metoda powiedzie się, wartość false, jeśli zakończy się niepowodzeniem.

CSecurityDesc::GetGroup

Pobiera informacje o grupie podstawowej z deskryptora zabezpieczeń.

bool GetGroup(
    CSid* pSid,
    bool* pbDefaulted = NULL) const throw(...);

Parametry

pSid
Wskaźnik do identyfikatora CSid (identyfikatora zabezpieczeń), który otrzymuje kopię grupy przechowywanej w CDacl.

pbDefaulted
Wskaźnik do flagi ustawionej na wartość flagi SE_GROUP_DEFAULTED w SECURITY_DESCRIPTOR_CONTROL strukturze, gdy metoda zwraca.

Wartość zwracana

Zwraca wartość true, jeśli metoda powiedzie się, wartość false, jeśli zakończy się niepowodzeniem.

CSecurityDesc::GetOwner

Pobiera informaton właściciela z deskryptora zabezpieczeń.

bool GetOwner(
    CSid* pSid,
    bool* pbDefaulted = NULL) const throw(...);

Parametry

pSid
Wskaźnik do identyfikatora CSid (identyfikatora zabezpieczeń), który otrzymuje kopię grupy przechowywanej w CDacl.

pbDefaulted
Wskaźnik do flagi ustawionej na wartość flagi SE_OWNER_DEFAULTED w SECURITY_DESCRIPTOR_CONTROL strukturze, gdy metoda zwraca.

Wartość zwracana

Zwraca wartość true, jeśli metoda powiedzie się, wartość false, jeśli zakończy się niepowodzeniem.

CSecurityDesc::GetPSECURITY_DESCRIPTOR

Zwraca wskaźnik do SECURITY_DESCRIPTOR struktury.

const SECURITY_DESCRIPTOR* GetPSECURITY_DESCRIPTOR() const throw();

Wartość zwracana

Zwraca wskaźnik do struktury SECURITY_DESCRIPTOR .

CSecurityDesc::GetSacl

Pobiera informacje dotyczące listy kontroli dostępu systemu (SACL) z deskryptora zabezpieczeń.

bool GetSacl(
    CSacl* pSacl,
    bool* pbPresent = NULL,
    bool* pbDefaulted = NULL) const throw(...);

Parametry

pSacl
Wskaźnik do CSacl struktury, w której ma być przechowywana kopia deskryptora zabezpieczeń SACL. Jeśli istnieje systemowa lista ACL, metoda ustawia listę PSacl na adres listy ACL systemu deskryptora zabezpieczeń. Jeśli systemowa lista ACL nie istnieje, żadna wartość nie jest przechowywana.

pbPresent
Wskaźnik do flagi ustawia metod, aby wskazać obecność listy ACL systemu w określonym deskryptorze zabezpieczeń. Jeśli deskryptor zabezpieczeń zawiera listę ACL systemu, ten parametr ma wartość true. Jeśli deskryptor zabezpieczeń nie zawiera systemowej listy ACL, ten parametr jest ustawiony na wartość false.

pbDefaulted
Wskaźnik do flagi ustawionej na wartość flagi SE_SACL_DEFAULTED w SECURITY_DESCRIPTOR_CONTROL strukturze, jeśli dla deskryptora zabezpieczeń istnieje systemowa lista ACL.

Wartość zwracana

Zwraca wartość true, jeśli metoda powiedzie się, wartość false, jeśli zakończy się niepowodzeniem.

CSecurityDesc::IsDaclAutoInherited

Określa, czy lista kontroli dostępu (DACL) uznaniowa jest skonfigurowana do obsługi automatycznej propagacji.

bool IsDaclAutoInherited() const throw();

Wartość zwracana

Zwraca wartość true, jeśli deskryptor zabezpieczeń zawiera listę DACL skonfigurowaną do obsługi automatycznego propagowania dziedziczych wpisów kontroli dostępu (ACE) do istniejących obiektów podrzędnych. W przeciwnym razie zwraca wartość false.

Uwagi

System ustawia ten bit, gdy wykonuje algorytm automatycznego dziedziczenia dla obiektu i jego istniejących obiektów podrzędnych.

CSecurityDesc::IsDaclDefaulted

Określa, czy deskryptor zabezpieczeń jest skonfigurowany z domyślną uznaniową listą kontroli dostępu (DACL).

bool IsDaclDefaulted() const throw();

Wartość zwracana

Zwraca wartość true, jeśli deskryptor zabezpieczeń zawiera domyślną listę DACL, w przeciwnym razie wartość false.

Uwagi

Ta flaga może mieć wpływ na sposób, w jaki system traktuje listę DACL w odniesieniu do dziedziczenia wpisu kontroli dostępu (ACE). Jeśli na przykład twórca obiektu nie określi listy DACL, obiekt otrzymuje domyślną listę DACL z tokenu dostępu twórcy. System ignoruje tę flagę, jeśli flaga SE_DACL_PRESENT nie jest ustawiona.

Ta flaga służy do określania sposobu obliczania końcowej listy DACL obiektu i nie jest przechowywana fizycznie w kontrolce deskryptora zabezpieczeń zabezpieczanego obiektu.

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetDacl .

CSecurityDesc::IsDaclPresent

Określa, czy deskryptor zabezpieczeń zawiera uznaniową listę kontroli dostępu (DACL).

bool IsDaclPresent() const throw();

Wartość zwracana

Zwraca wartość true, jeśli deskryptor zabezpieczeń zawiera listę DACL, w przeciwnym razie wartość false.

Uwagi

Jeśli ta flaga nie jest ustawiona lub ta flaga jest ustawiona, a lista DACL ma wartość NULL, deskryptor zabezpieczeń umożliwia pełny dostęp do wszystkich użytkowników.

Ta flaga służy do przechowywania informacji zabezpieczających określonych przez obiekt wywołujący do momentu skojarzenia deskryptora zabezpieczeń z zabezpieczanym obiektem. Po skojarzeniu deskryptora zabezpieczeń z zabezpieczanym obiektem flaga SE_DACL_PRESENT jest zawsze ustawiana w kontrolce deskryptora zabezpieczeń.

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetDacl .

CSecurityDesc::IsDaclProtected

Określa, czy lista kontroli dostępu (DACL) uznaniowa jest skonfigurowana w celu zapobiegania modyfikacjom.

bool IsDaclProtected() const throw();

Wartość zwracana

Zwraca wartość true, jeśli lista DACL jest skonfigurowana tak, aby zapobiec modyfikacji deskryptora zabezpieczeń przez dziedziczone wpisy kontroli dostępu (ACL). W przeciwnym razie zwraca wartość false.

Uwagi

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetDacl .

Ta metoda obsługuje automatyczną propagację dziedziczych kontroli dostępu.

CSecurityDesc::IsGroupDefaulted

Określa, czy deskryptora zabezpieczeń grupy (SID) został ustawiony domyślnie.

bool IsGroupDefaulted() const throw();

Wartość zwracana

Zwraca wartość true, jeśli domyślny mechanizm, a nie oryginalny dostawca deskryptora zabezpieczeń, pod warunkiem, że identyfikator SID grupy deskryptora zabezpieczeń. W przeciwnym razie zwraca wartość false.

Uwagi

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetGroup .

CSecurityDesc::IsOwnerDefaulted

Określa, czy deskryptora zabezpieczeń właściciela (SID) został ustawiony domyślnie.

bool IsOwnerDefaulted() const throw();

Wartość zwracana

Zwraca wartość true, jeśli domyślny mechanizm, a nie oryginalny dostawca deskryptora zabezpieczeń, pod warunkiem, że identyfikator SID właściciela deskryptora zabezpieczeń. W przeciwnym razie zwraca wartość false.

Uwagi

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetOwner .

CSecurityDesc::IsSaclAutoInherited

Określa, czy systemowa lista kontroli dostępu (SACL) jest skonfigurowana do obsługi automatycznej propagacji.

bool IsSaclAutoInherited() const throw();

Wartość zwracana

Zwraca wartość true, jeśli deskryptor zabezpieczeń zawiera sacL, który jest skonfigurowany do obsługi automatycznej propagacji dziedziczonego wpisów kontroli dostępu (ACE) do istniejących obiektów podrzędnych. W przeciwnym razie zwraca wartość false.

Uwagi

System ustawia ten bit, gdy wykonuje algorytm automatycznego dziedziczenia dla obiektu i jego istniejących obiektów podrzędnych.

CSecurityDesc::IsSaclDefaulted

Określa, czy deskryptor zabezpieczeń jest skonfigurowany z domyślną listą kontroli dostępu systemu (SACL).

bool IsSaclDefaulted() const throw();

Wartość zwracana

Zwraca wartość true, jeśli deskryptor zabezpieczeń zawiera domyślną wartość SACL, w przeciwnym razie wartość false.

Uwagi

Ta flaga może mieć wpływ na sposób, w jaki system traktuje SACL w odniesieniu do dziedziczenia wpisu kontroli dostępu (ACE). System ignoruje tę flagę, jeśli flaga SE_SACL_PRESENT nie jest ustawiona.

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetSacl .

CSecurityDesc::IsSaclPresent

Określa, czy deskryptor zabezpieczeń zawiera systemową listę kontroli dostępu (SACL).

bool IsSaclPresent() const throw();

Wartość zwracana

Zwraca wartość true, jeśli deskryptor zabezpieczeń zawiera SACL, w przeciwnym razie wartość false.

Uwagi

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetSacl .

CSecurityDesc::IsSaclProtected

Określa, czy systemowa lista kontroli dostępu (SACL) jest skonfigurowana w celu zapobiegania modyfikacjom.

bool IsSaclProtected() const throw();

Wartość zwracana

Zwraca wartość true, jeśli sacL jest skonfigurowany tak, aby zapobiec modyfikacji deskryptora zabezpieczeń przez dziedziczone wpisy kontroli dostępu (ACL). W przeciwnym razie zwraca wartość false.

Uwagi

Aby ustawić tę flagę , użyj metody CSecurityDesc::SetSacl .

Ta metoda obsługuje automatyczną propagację dziedziczych kontroli dostępu.

CSecurityDesc::IsSelfRelative

Określa, czy deskryptor zabezpieczeń jest w formacie względnym.

bool IsSelfRelative() const throw();

Wartość zwracana

Zwraca wartość true, jeśli deskryptor zabezpieczeń jest w formacie względnym ze wszystkimi informacjami o zabezpieczeniach w ciągłym bloku pamięci. Zwraca wartość false, jeśli deskryptor zabezpieczeń ma format bezwzględny. Aby uzyskać więcej informacji, zobacz bezwzględne i względne deskryptory zabezpieczeń.

CSecurityDesc::MakeAbsolute

Wywołaj tę metodę, aby przekonwertować deskryptor zabezpieczeń na format bezwzględny.

bool MakeAbsolute() throw(...);

Wartość zwracana

Zwraca wartość true, jeśli metoda powiedzie się, w przeciwnym razie wartość false.

Uwagi

Deskryptor zabezpieczeń w formacie bezwzględnym zawiera wskaźniki do zawartych w nim informacji, a nie samych informacji. Deskryptor zabezpieczeń w formacie względnym własnym zawiera informacje w ciągłym bloku pamięci. W deskryptorze SECURITY_DESCRIPTOR zabezpieczeń względnych struktura zawsze uruchamia informacje, ale inne składniki deskryptora zabezpieczeń mogą podążać za strukturą w dowolnej kolejności. Zamiast używać adresów pamięci, składniki deskryptora zabezpieczeń względnych są identyfikowane przez przesunięcia od początku deskryptora zabezpieczeń. Ten format jest przydatny, gdy deskryptor zabezpieczeń musi być przechowywany na dysku lub przesyłany za pomocą protokołu komunikacyjnego. Aby uzyskać więcej informacji, zobacz bezwzględne i względne deskryptory zabezpieczeń.

CSecurityDesc::MakeSelfRelative

Wywołaj tę metodę, aby przekonwertować deskryptor zabezpieczeń na format względny.

bool MakeSelfRelative() throw(...);

Wartość zwracana

Zwraca wartość true, jeśli metoda powiedzie się, w przeciwnym razie wartość false.

Uwagi

Deskryptor zabezpieczeń w formacie bezwzględnym zawiera wskaźniki do informacji, które zawiera, zamiast zawierać same informacje. Deskryptor zabezpieczeń w formacie względnym własnym zawiera informacje w ciągłym bloku pamięci. W deskryptorze SECURITY_DESCRIPTOR zabezpieczeń względnych struktura zawsze uruchamia informacje, ale inne składniki deskryptora zabezpieczeń mogą podążać za strukturą w dowolnej kolejności. Zamiast używać adresów pamięci, składniki deskryptora zabezpieczeń są identyfikowane przez przesunięcia od początku deskryptora zabezpieczeń. Ten format jest przydatny, gdy deskryptor zabezpieczeń musi być przechowywany na dysku lub przesyłany za pomocą protokołu komunikacyjnego. Aby uzyskać więcej informacji, zobacz bezwzględne i względne deskryptory zabezpieczeń.

CSecurityDesc::operator =

Operator przypisania.

CSecurityDesc& operator= (const SECURITY_DESCRIPTOR& rhs) throw(...);
CSecurityDesc& operator= (const CSecurityDesc& rhs) throw(...);

Parametry

Rhs
Struktura SECURITY_DESCRIPTOR lub CSecurityDesc obiekt do przypisania do CSecurityDesc obiektu.

Wartość zwracana

Zwraca zaktualizowany CSecurityDesc obiekt.

CSecurityDesc::operator const SECURITY_DESCRIPTOR *

Rzutuje wartość na wskaźnik do SECURITY_DESCRIPTOR struktury.

operator const SECURITY_DESCRIPTOR *() const throw();

CSecurityDesc::SetControl

Ustawia bity kontrolne deskryptora zabezpieczeń.

bool SetControl(
    SECURITY_DESCRIPTOR_CONTROL ControlBitsOfInterest,
    SECURITY_DESCRIPTOR_CONTROL ControlBitsToSet) throw();

Parametry

ControlBitsOfInterest
Maska SECURITY_DESCRIPTOR_CONTROL wskazująca bity sterujące do ustawienia. Aby uzyskać listę flag, które można ustawić, zobacz SetSecurityDescriptorControl.

ControlBitsToSet
Maska SECURITY_DESCRIPTOR_CONTROL wskazująca nowe wartości bitów kontrolnych określonych przez maskę ControlBitsOfInterest . Ten parametr może być kombinacją flag wymienionych dla parametru ControlBitsOfInterest .

Wartość zwracana

Zwraca wartość true w przypadku powodzenia; wartość false w razie niepowodzenia.

Uwagi

Ta metoda wywołuje metodę SetSecurityDescriptorControl.

CSecurityDesc::SetDacl

Ustawia informacje na liście kontroli dostępu (DACL, discretionary access-control list). Jeśli lista DACL jest już obecna w deskryptorze zabezpieczeń, zostanie zamieniona.

inline void SetDacl(
    bool bPresent = true,
    bool bDefaulted = false) throw(...);

inline void SetDacl(
    const CDacl& Dacl,
    bool bDefaulted = false) throw(...);

Parametry

Dacl
Odwołanie do CDacl obiektu określającego listę DACL deskryptora zabezpieczeń. Ten parametr nie może mieć wartości NULL. Aby ustawić listę DACL o wartości NULL w deskryptorze zabezpieczeń, należy użyć pierwszej formy metody z wartością bPresent ustawioną na false.

bPresent
Określa flagę wskazującą obecność listy DACL w deskryptorze zabezpieczeń. Jeśli ten parametr ma wartość true, metoda ustawia flagę SE_DACL_PRESENT w SECURITY_DESCRIPTOR_CONTROL strukturze i używa wartości w parametrach Dacl i bDefaulted . Jeśli jest to fałsz, metoda czyści flagę SE_DACL_PRESENT, a wartość bDefaulted jest ignorowana.

bDefaulted
Określa flagę wskazującą źródło listy DACL. Jeśli ta flaga ma wartość true, lista DACL została pobrana domyślnie przez jakiś mechanizm. Jeśli wartość false, lista DACL została jawnie określona przez użytkownika. Metoda przechowuje tę wartość w SE_DACL_DEFAULTED flagi SECURITY_DESCRIPTOR_CONTROL struktury. Jeśli ten parametr nie zostanie określony, flaga SE_DACL_DEFAULTED zostanie wyczyszczone.

Wartość zwracana

Zwraca wartość true w przypadku powodzenia; wartość false w razie niepowodzenia.

Uwagi

Istnieje ważna różnica między pustą i nieistnieną listą DACL. Gdy lista DACL jest pusta, nie zawiera żadnych wpisów kontroli dostępu i nie udzielono jawnie praw dostępu. W związku z tym dostęp do obiektu jest niejawnie blokowany. Jeśli obiekt nie ma listy DACL, z drugiej strony do obiektu nie jest przypisana żadna ochrona, a każde żądanie dostępu zostanie przyznane.

CSecurityDesc::SetGroup

Ustawia podstawowe informacje o grupach deskryptora zabezpieczeń w formacie bezwzględnym, zastępując wszystkie informacje o podstawowej grupie, które już istnieją.

bool SetGroup(const CSid& Sid, bool bDefaulted = false) throw(...);

Parametry

Sid
Odwołanie do obiektu CSid dla nowej grupy podstawowej deskryptora zabezpieczeń. Ten parametr nie może mieć wartości NULL. Deskryptor zabezpieczeń może być oznaczony jako bez listy DACL lub SACL, ale musi mieć grupę i właściciela, nawet jest to identyfikator SID o wartości NULL (który jest wbudowanym identyfikatorem SID ze specjalnym znaczeniem).

bDefaulted
Wskazuje, czy informacje o grupie podstawowej pochodziły z domyślnego mechanizmu. Jeśli ta wartość ma wartość true, jest to informacja domyślna, a metoda przechowuje tę wartość jako flagę SE_GROUP_DEFAULTED w SECURITY_DESCRIPTOR_CONTROL strukturze. Jeśli ten parametr ma wartość zero, flaga SE_GROUP_DEFAULTED zostanie wyczyszczone.

Wartość zwracana

Zwraca wartość true w przypadku powodzenia; wartość false w razie niepowodzenia.

CSecurityDesc::SetOwner

Ustawia informacje właściciela deskryptora zabezpieczeń w formacie bezwzględnym. Zastępuje wszystkie informacje o właścicielach, które już istnieją.

bool SetOwner(const CSid& Sid, bool bDefaulted = false) throw(...);

Parametry

Sid
Obiekt CSid nowego właściciela podstawowego deskryptora zabezpieczeń. Ten parametr nie może mieć wartości NULL.

bDefaulted
Wskazuje, czy informacje o właścicielu pochodzą z domyślnego mechanizmu. Jeśli ta wartość ma wartość true, jest to informacja domyślna. Metoda przechowuje tę wartość jako flagę SE_OWNER_DEFAULTED w SECURITY_DESCRIPTOR_CONTROL strukturze. Jeśli ten parametr ma wartość zero, flaga SE_OWNER_DEFAULTED zostanie wyczyszczone.

Wartość zwracana

Zwraca wartość true w przypadku powodzenia; wartość false w razie niepowodzenia.

CSecurityDesc::SetSacl

Ustawia informacje na liście kontroli dostępu systemu (SACL). Jeśli sacL jest już obecny w deskryptorze zabezpieczeń, zostanie zastąpiony.

bool SetSacl(const CSacl& Sacl, bool bDefaulted = false) throw(...);

Parametry

Sacl
Wskaźnik do CSacl obiektu określającego SACL deskryptora zabezpieczeń. Ten parametr nie może mieć wartości NULL i musi być obiektem CSacl. W przeciwieństwie do list DACL, nie ma różnicy między wartością NULL a pustym SACL, ponieważ obiekty SACL nie określają praw dostępu, tylko informacje inspekcji.

bDefaulted
Określa flagę wskazującą źródło SACL. Jeśli ta flaga ma wartość true, plik SACL został pobrany przez jakiś mechanizm domyślny. Jeśli wartość false, SACL został jawnie określony przez użytkownika. Metoda przechowuje tę wartość w SE_SACL_DEFAULTED flagi SECURITY_DESCRIPTOR_CONTROL struktury. Jeśli ten parametr nie zostanie określony, flaga SE_SACL_DEFAULTED zostanie wyczyszczone.

Wartość zwracana

Zwraca wartość true w przypadku powodzenia; wartość false w razie niepowodzenia.

CSecurityDesc::ToString

Konwertuje deskryptor zabezpieczeń na format ciągu.

bool ToString(
    CString* pstr, SECURITY_INFORMATION si = OWNER_SECURITY_INFORMATION |
    GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION |
    SACL_SECURITY_INFORMATION) const throw(...);

Parametry

pstr
Wskaźnik do ciągu zakończonego wartością null, który otrzyma deskryptor zabezpieczeń formatu ciągu.

Si
Określa kombinację SECURITY_INFORMATION flag bitowych, aby wskazać składniki deskryptora zabezpieczeń do uwzględnienia w ciągu wyjściowym.

Wartość zwracana

Zwraca wartość true w przypadku powodzenia; wartość false w razie niepowodzenia.

Uwagi

Gdy deskryptor zabezpieczeń jest w formacie ciągu, można go łatwiej przechowywać lub przesyłać. CSecurityDesc::FromString Użyj metody , aby przekonwertować ciąg z powrotem na deskryptor zabezpieczeń.

Parametr si może zawierać następujące flagi SECURITY_INFORMATION:

Wartość Znaczenie
OWNER_SECURITY_INFORMATION Dołącz właściciela.
GROUP_SECURITY_INFORMATION Uwzględnij grupę podstawową.
DACL_SECURITY_INFORMATION Uwzględnij listę DACL.
SACL_SECURITY_INFORMATION Uwzględnij SACL.

Jeśli lista DACL ma wartość NULL, a bit sterowania SE_DACL_PRESENT jest ustawiony w deskryptorze zabezpieczeń wejściowych, metoda kończy się niepowodzeniem.

Jeśli lista DACL ma wartość NULL, a bit sterowania SE_DACL_PRESENT nie jest ustawiony w deskryptorze zabezpieczeń wejściowych, wynikowy ciąg deskryptora zabezpieczeń nie ma składnika D: . Aby uzyskać więcej informacji, zobacz Format ciągu deskryptora zabezpieczeń.

Ta metoda wywołuje metodę ConvertStringSecurityDescriptorToSecurityDescriptor.

Zobacz też

Przykład zabezpieczeń
SECURITY_DESCRIPTOR
Omówienie klasy
Funkcje globalne zabezpieczeń