다음을 통해 공유


IADsGroup::IsMember 메서드(iads.h)

IADsGroup::IsMember 메서드는 디렉터리 서비스 개체가 그룹의 직접 멤버인지 여부를 결정합니다. 이 메서드는 중첩된 그룹의 멤버 자격을 확인하지 않습니다.

구문

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

매개 변수

bstrMember

멤버 자격을 확인하기 위해 디렉터리 서비스 개체의 ADsPath를 포함합니다. 이 ADsPath는 그룹에 바인딩하는 데 사용되는 것과 동일한 ADSI 공급자를 사용해야 합니다. 예를 들어 그룹이 LDAP 공급자를 사용하도록 바인딩된 경우 이 ADsPath는 LDAP 공급자도 사용해야 합니다.

[out] bMember

개체가 그룹의 직접 구성원이거나 그렇지 않으면 VARIANT_FALSE 경우 VARIANT_TRUE 수신하는 VARIANT_BOOL 값에 대한 포인터입니다.

반환 값

이 메서드는 S_OK 포함하여 표준 반환 값을 지원합니다. 자세한 내용은 ADSI 오류 코드를 참조하세요.

설명

WinNT 공급자를 통해 멤버 SID를 사용하여 그룹에 보안 주체를 추가하거나 제거할 수 있지만 , IADsGroup.IsMember 메서드는 멤버가 WinNT 공급자를 통해 그룹에 속하는 경우 확인을 위해 SID ADsPath 사용을 지원하지 않습니다.

IADsGroup::IsMember 메서드는 그룹과 개체가 동일한 도메인에 있는 경우에만 올바르게 작동합니다. 개체가 그룹과 다른 도메인에 있는 경우 IADsGroup::IsMember 는 항상 VARIANT_FALSE 반환합니다.

예제

다음 코드 예제에서는 "jeffsmith" 사용자를 "Fabrikam" 도메인의 "Administrators" 그룹에 추가한 다음 사용자가 이제 그룹의 구성원임을 보고합니다.

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

다음 코드 예제에서는 사용자가 그룹에 추가하기 전에 그룹에 속하는지 확인합니다.

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;

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 iads.h
DLL Activeds.dll

추가 정보

ADSI 오류 코드

IADsGroup

IADsGroup 속성 메서드

IADsMembers