Udostępnij za pośrednictwem


CSecurityDesc::SetDacl

Ustawia informacje o liście arbitralnej kontroli dostępu (DACL).Jeśli lista DACL jest już obecny w deskryptorze zabezpieczeń, zostanie zastąpiona.

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

Parametry

  • Lista DACL
    Odniesienie do CDacl określające DACL dla deskryptora zabezpieczeń obiektu.Ten parametr nie może być NULL.Aby ustawić DACL ZEROWY deskryptor zabezpieczeń, należy używać pierwszego formularza metody z bPresent wartość false.

  • bPresent
    Określa flagi wskazujące na obecność DACL w deskryptorze zabezpieczeń.Jeśli ten parametr ma wartość true, metoda ustawia flagę SE_DACL_PRESENT SECURITY_DESCRIPTOR_CONTROL struktury i używa wartości w Dacl i bDefaulted parametry.Jeśli FAŁSZ, metoda czyści flagi SE_DACL_PRESENT i bDefaulted jest ignorowana.

  • bDefaulted
    Określa flagi wskazujące źródła DACL.Jeśli flaga ta ma wartość true, niektóre domyślnego mechanizmu pobraniu listy DACL.Jeśli FAŁSZ, listy DACL został jawnie określony przez użytkownika.Metoda przechowuje tę wartość w Flaga SE_DACL_DEFAULTED SECURITY_DESCRIPTOR_CONTROL struktury.Jeżeli nie określono tego parametru, Flaga SE_DACL_DEFAULTED jest wyczyszczone.

Wartość zwracana

Zwraca wartość true w przypadku powodzenia, false w przypadku niepowodzenia.

Uwagi

Istnieje istotna różnica między puste i nieistniejącej DACL.Gdy lista DACL jest pusta, zawiera żadnych wpisów kontroli dostępu i jawnie przyznano żadnych praw dostępu.W rezultacie niejawnie odmówiono dostępu do obiektu.Gdy obiekt nie ma żadnych DACL, z drugiej strony, ochrona nie jest przypisany do obiektu i każde żądanie dostępu jest przyznane.

Wymagania

Nagłówek: atlsecurity.h

Zobacz też

Informacje

Klasa CSecurityDesc

SetSecurityDescriptorDacl

CSecurityDesc::SetControl

CSecurityDesc::SetGroup

CSecurityDesc::SetOwner

CSecurityDesc::SetSacl

CSecurityDesc::GetDacl