Bagikan melalui


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.

Sintaks

HRESULT IsMember(
        BSTR         bstrMember,
  [out] VARIANT_BOOL *bMember
);

Parameter

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.

Nilai kembali

Metode ini mendukung nilai pengembalian standar, termasuk S_OK. Untuk informasi selengkapnya, lihat Kode Kesalahan ADSI.

Keterangan

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

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

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header iads.h
DLL Activeds.dll

Lihat juga

Kode Kesalahan ADSI

IADsGroup

Metode Properti IADsGroup

IADsMembers