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 |