Antarmuka IADsSecurityDescriptor (iads.h)
Antarmuka IADsSecurityDescriptor menyediakan akses ke properti pada objek deskriptor keamanan ADSI.
Warisan
Antarmuka IADsSecurityDescriptor mewarisi dari antarmuka IDispatch . IADsSecurityDescriptor juga memiliki jenis anggota berikut:
Metode
Antarmuka IADsSecurityDescriptor memiliki metode ini.
IADsSecurityDescriptor::CopySecurityDescriptor Metode IADsSecurityDescriptor::CopySecurityDescriptor menyalin objek deskriptor keamanan ADSI yang menyimpan data keamanan tentang objek. |
Keterangan
Gunakan antarmuka ini untuk memeriksa dan mengubah kontrol akses ke objek layanan direktori Active Directory. Anda juga dapat menggunakannya untuk membuat salinan deskriptor keamanan. Untuk mendapatkan antarmuka ini, gunakan metode IADs.Get untuk mendapatkan atribut ntSecurityDescriptor objek. Untuk informasi selengkapnya tentang cara membuat deskriptor keamanan baru dan mengaturnya pada objek, lihat Membuat Deskriptor Keamanan untuk Objek Direktori Baru dan DACL Null dan DACL Kosong.
Seringkali, tidak mungkin untuk memodifikasi semua bagian deskriptor keamanan. Misalnya, jika pengguna saat ini memiliki kontrol penuh atas objek, tetapi bukan administrator dan tidak memiliki objek, pengguna dapat memodifikasi DACL, tetapi tidak dapat memodifikasi pemilik. Ini akan menyebabkan kesalahan ketika ntSecurityDescriptor diperbarui. Untuk menghindari masalah ini, antarmuka IADsObjectOptions dapat digunakan untuk menentukan bagian tertentu dari deskriptor keamanan yang harus dimodifikasi.
Contoh
Contoh kode berikut menunjukkan cara menggunakan antarmuka IADsObjectOptions untuk hanya memodifikasi bagian tertentu dari deskriptor keamanan.
Const ADS_OPTION_SECURITY_MASK = 3
Const ADS_SECURITY_INFO_OWNER = 1
Const ADS_SECURITY_INFO_GROUP = 2
Const ADS_SECURITY_INFO_DACL = 4
Dim obj as IADs
Dim sd as IADsSecurityDescriptor
Dim oOptions as IADsObjectOptions
' Bind to the object.
Set obj = GetObject("LDAP://.....")
' Get the IADsSecurityDescriptor.
Set sd = obj.Get("ntSecurityDescriptor")
' Modify the DACL as required.
' Get the IADsObjectOptions for the object - not the IADsSecurityDescriptor.
Set oOptions = obj
' Set options so that only the DACL will be updated.
oOptions.SetOption ADS_OPTION_SECURITY_MASK, ADS_INFO_DACL
' Update the security descriptor.
obj.Put "ntSecurityDescriptor", sd
obj.SetInfo
Contoh kode berikut menunjukkan cara menampilkan data dari deskriptor keamanan.
' Get the security descriptor.
Dim x As IADs
Dim sd As IADsSecurityDescriptor
On Error GoTo Cleanup
Set x = GetObject("LDAP://DC=Fabrikam,DC=com")
Set sd = x.Get("ntSecurityDescriptor")
Debug.Print sd.Control
Debug.Print sd.Group
Debug.Print sd.Owner
Debug.Print sd.Revision
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set x = Nothing
Set sd = Nothing
Contoh kode berikut menunjukkan cara menampilkan data dari pendeskripsi keamanan objek direktori.
HRESULT DisplaySD(IADs *pObj)
{
IADsSecurityDescriptor *pSD = NULL;
BSTR bstr = NULL;
long lVal = 0;
HRESULT hr = S_OK;
VARIANT var;
VariantInit(&var);
if(pObj==NULL)
{
return E_FAIL;
}
hr = pObj->Get(CComBSTR("ntSecurityDescriptor"), &var);
if(FAILED(hr)){goto Cleanup;}
hr = V_DISPATCH(&var)->QueryInterface(IID_IADsSecurityDescriptor,(void**)&pSD);
if(FAILED(hr)){goto Cleanup;}
hr = pSD->get_Control(&lVal);
printf("SD Control = %d\n",lVal);
hr = pSD->get_Owner(&bstr);
printf("SD Owner = %S\n",bstr);
SysFreeString(bstr);
hr = pSD->get_Group(&bstr);
printf("SD Group = %S\n",bstr);
SysFreeString(bstr);
hr = pSD->get_Revision(&lVal);
printf("SD Revision= %d\n",lVal);
Cleanup:
VariantClear(&var);
if(pSD) pSD->Release();
return hr;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Server minimum yang didukung | Windows Server 2008 |
Target Platform | Windows |
Header | iads.h |