Membuat Deskriptor Keamanan untuk objek direktori baru

Anda dapat menggunakan ADSI untuk membuat pendeskripsi keamanan dan mengaturnya sebagai properti nTSecurityDescriptor objek baru atau menggunakannya untuk mengganti properti nTSecurityDescriptor objek yang ada.

Untuk membuat pendeskripsi keamanan untuk objek:

  1. Gunakan CoCreateInstance untuk membuat objek ADSI COM untuk deskriptor keamanan baru dan mendapatkan penunjuk antarmuka IADsSecurityDescriptor ke objek tersebut. Ketahuilah bahwa ID kelas CLSID_SecurityDescriptor.
  2. Gunakan metode IADsSecurityDescriptor::p ut_Owner untuk mengatur pemilik objek. Wali adalah pengguna, grup, atau prinsip keamanan lainnya. Aplikasi harus menggunakan nilai dari properti yang sesuai dari objek pengguna atau grup wali yang akan menerapkan ACE.
  3. Gunakan metode IADsSecurityDescriptor::p ut_Control untuk mengontrol apakah DACL dan SACL diwariskan oleh objek dari kontainer induknya.
  4. Gunakan CoCreateInstance untuk membuat objek ADSI COM untuk DACL untuk deskriptor keamanan baru dan mendapatkan penunjuk antarmuka IADsAccessControlList ke objek tersebut. Ketahuilah bahwa ID kelas CLSID_AccessControlList.
  5. Agar setiap ACE ditambahkan ke DACL, gunakan CoCreateInstance untuk membuat objek ADSI COM untuk ACE baru dan mendapatkan penunjuk antarmuka IADsAccessControlEntry ke objek tersebut. Ketahuilah bahwa ID kelas CLSID_AccessControlEntry.
  6. Agar setiap ACE ditambahkan ke DACL, atur properti ACE menggunakan metode properti objek IADsAccessControlEntry ACE. Untuk informasi selengkapnya tentang properti yang akan diatur pada ACE, lihat Mengatur Hak Akses pada Objek.
  7. Agar setiap ACE ditambahkan ke DACL, gunakan metode QueryInterface pada objek IADsAccessControlEntry untuk mendapatkan penunjuk IDispatch. Metode IADsAccessControlList::AddAce memerlukan penunjuk antarmuka IDispatch ke ACE.
  8. Agar setiap ACE ditambahkan ke DACL, gunakan IADsAccessControlList::AddAce untuk menambahkan ACE baru ke DACL. Ketahuilah bahwa urutan ACE dalam ACL dapat memengaruhi evaluasi akses ke objek. Akses yang benar ke objek mungkin mengharuskan Anda membuat ACL baru, menambahkan ACL dari ACL yang ada dalam urutan yang benar ke ACL baru, lalu mengganti ACL yang ada di deskriptor keamanan dengan ACL baru. Untuk informasi selengkapnya, lihat Urutan ACE di DACL.
  9. Ikuti Langkah 4-8 untuk membuat SACL untuk deskriptor keamanan baru.
  10. Gunakan metode IADsSecurityDescriptor::p ut_DiscretionaryAcl untuk mengatur DACL. Untuk informasi selengkapnya tentang DACL, lihat DACL Null dan DACL Kosong.
  11. Gunakan metode IADsSecurityDescriptor::p ut_SystemAcl untuk mengatur SACL.
  12. Konversikan objek IADsSecurityDescriptor ke VARIAN dengan menggunakan metode QueryInterface objek IADsSecurityDescriptor untuk mendapatkan antarmuka IDispatch. Kemudian atur anggota vt VARIAN ke VT_DISPATCH dan atur anggota pdispVal dari VARIAN sama dengan pointer IDispatch.
  13. Dapatkan penunjuk antarmuka IAD ke objek.
  14. Gunakan metode IADs::P ut dengan "nTSecurityDescriptor" dan VARIAN yang dibuat di atas untuk menulis deskriptor keamanan baru ke cache properti.
  15. Gunakan metode IADs::SetInfo untuk memperbarui properti pada objek di direktori.