IADsGroup::Metode IsMember (iads.h)
Metode IADsGroup::IsMember menentukan apakah objek layanan direktori adalah anggota langsung grup. Metode ini tidak memverifikasi keanggotaan dalam grup berlapis apa pun.
HRESULT IsMember(
BSTR bstrMember,
[out] VARIANT_BOOL *bMember
);
bstrMember
Berisi ADsPath objek layanan direktori untuk memverifikasi keanggotaan. ADsPath ini harus menggunakan penyedia ADSI yang sama yang digunakan untuk mengikat grup. Misalnya, jika grup terikat untuk menggunakan penyedia LDAP, ADsPath ini juga harus menggunakan penyedia LDAP.
[out] bMember
Arahkan ke nilai VARIANT_BOOL yang menerima VARIANT_TRUE jika objek adalah anggota langsung grup atau VARIANT_FALSE sebaliknya.
Metode ini mendukung nilai pengembalian standar, termasuk S_OK. Untuk informasi selengkapnya, lihat Kode Kesalahan ADSI.
Meskipun Anda dapat menambahkan atau menghapus prinsip keamanan ke atau dari grup menggunakan SID anggota melalui penyedia WinNT, metode IADsGroup.IsMember tidak mendukung penggunaan SID ADsPath untuk verifikasi jika anggota termasuk dalam grup melalui penyedia WinNT.
Metode IADsGroup::IsMember hanya akan berfungsi dengan benar jika grup dan objek berada di domain yang sama. Jika objek berada di domain yang berbeda dari grup, IADsGroup::IsMember akan selalu mengembalikan VARIANT_FALSE.
Contoh kode berikut menambahkan pengguna "jeffsmith" ke grup "Administrator" pada domain "Fabrikam" lalu melaporkan bahwa pengguna sekarang menjadi anggota grup.
Dim grp As IADsGroup
On Error GoTo Cleanup
Set grp = GetObject("WinNT://Microsoft/Administrators")
grp.Add ("WinNT://Fabrikam/jeffsmith")
Debug.Print grp.IsMember("WinNT://Fabrikam/jeffsmith ") ' Should be TRUE.
Cleanup:
If (Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number)
End If
Set grp = Nothing
Contoh kode berikut memverifikasi bahwa pengguna termasuk dalam grup sebelum menambahkannya ke grup.
IADsGroup *pGroup = NULL;
HRESULT hr = S_OK;
LPWSTR adsPath = L"WinNT://Fabrikam/Administrators";
BSTR bstr = NULL;
hr = ADsGetObject(adsPath, IID_IADsGroup, (void**)&pGroup);
if(FAILED(hr))
{
goto Cleanup;
}
hr = pGroup->get_Description(&bstr);
if(FAILED(hr))
{
goto Cleanup;
}
printf("Description: %S\n",bstr);
SysFreeString(bstr);
VARIANT_BOOL inG=false;
hr = pGroup->IsMember(CComBSTR("WinNT://Microsoft/SecUser"), &inG);
if (inG )
{
printf("already in the group.\n");
}
else
{
hr = pGroup->Add(CComBSTR("WinNT://Microsoft/SecUser"));
if(FAILED(hr))
{
goto Cleanup;
}
printf("user added.\n");
}
Cleanup:
if(pGroup)
{
pGroup->Release();
}
if(bstr)
{
SysFreeString(bstr);
}
return hr;
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista |
Server minimum yang didukung | Windows Server 2008 |
Target Platform | Windows |
Header | iads.h |
DLL | Activeds.dll |