IADsGroup::IsMember-Methode (iads.h)
Die IADsGroup::IsMember-Methode bestimmt, ob ein Verzeichnisdienstobjekt ein unmittelbares Mitglied der Gruppe ist. Diese Methode überprüft nicht die Mitgliedschaft in geschachtelten Gruppen.
Syntax
HRESULT IsMember(
BSTR bstrMember,
[out] VARIANT_BOOL *bMember
);
Parameter
bstrMember
Enthält den ADsPath des Verzeichnisdienstobjekts zum Überprüfen der Mitgliedschaft. Dieser ADsPath muss denselben ADSI-Anbieter verwenden, der zum Binden an die Gruppe verwendet wurde. Wenn die Gruppe beispielsweise an den LDAP-Anbieter gebunden war, muss dieser ADsPath auch den LDAP-Anbieter verwenden.
[out] bMember
Zeiger auf einen VARIANT_BOOL Wert, der VARIANT_TRUE empfängt, wenn das Objekt ein unmittelbares Mitglied der Gruppe ist oder andernfalls VARIANT_FALSE .
Rückgabewert
Diese Methode unterstützt die Standardrückgabewerte, einschließlich S_OK. Weitere Informationen finden Sie unter ADSI-Fehlercodes.
Hinweise
Obwohl Sie mithilfe der Member-SID über den WinNT-Anbieter einen Sicherheitsprinzipal zu oder aus einer Gruppe hinzufügen oder daraus entfernen können, unterstützt die IADsGroup.IsMember-Methode die Verwendung eines SID-ADsPath zur Überprüfung nicht, wenn ein Mitglied über den WinNT-Anbieter zu einer Gruppe gehört.
Die IADsGroup::IsMember-Methode funktioniert nur ordnungsgemäß, wenn sich die Gruppe und das Objekt in derselben Domäne befinden. Wenn sich das Objekt in einer anderen Domäne als die Gruppe befindet, gibt IADsGroup::IsMember immer VARIANT_FALSE zurück.
Beispiele
Im folgenden Codebeispiel wird der Benutzer "jeffsmith" der Gruppe "Administratoren" in der Domäne "Fabrikam" hinzugefügt und dann gemeldet, dass der Benutzer jetzt Mitglied der Gruppe ist.
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
Im folgenden Codebeispiel wird überprüft, ob ein Benutzer zu einer Gruppe gehört, bevor er der Gruppe hinzugefügt wird.
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;
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | iads.h |
DLL | Activeds.dll |