Método IADsGroup::IsMember (iads.h)
O método IADsGroup::IsMember determina se um objeto de serviço de diretório é um membro imediato do grupo. Esse método não verifica a associação em nenhum grupo aninhado.
Sintaxe
HRESULT IsMember(
BSTR bstrMember,
[out] VARIANT_BOOL *bMember
);
Parâmetros
bstrMember
Contém o ADsPath do objeto de serviço de diretório para verificar a associação. Esse ADsPath deve usar o mesmo provedor ADSI usado para associar ao grupo. Por exemplo, se o grupo tiver sido obrigado a usar o provedor LDAP, esse ADsPath também deverá usar o provedor LDAP.
[out] bMember
Ponteiro para um valor VARIANT_BOOL que recebe VARIANT_TRUE se o objeto for um membro imediato do grupo ou VARIANT_FALSE caso contrário.
Retornar valor
Esse método dá suporte aos valores retornados padrão, incluindo S_OK. Para obter mais informações, consulte Códigos de erro ADSI.
Comentários
Embora você possa adicionar ou remover uma entidade de segurança de ou para um grupo usando o SID membro por meio do provedor WinNT, o método IADsGroup.IsMember não dá suporte ao uso de um SID ADsPath para verificação se um membro pertencer a um grupo por meio do provedor WinNT.
O método IADsGroup::IsMember só funcionará corretamente se o grupo e o objeto estiverem no mesmo domínio. Se o objeto estiver em um domínio diferente do grupo, IADsGroup::IsMember sempre retornará VARIANT_FALSE.
Exemplos
O exemplo de código a seguir adiciona o usuário "jeffsmith" ao grupo "Administradores" no domínio "Fabrikam" e, em seguida, relata que o usuário agora é membro do grupo.
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
O exemplo de código a seguir verifica se um usuário pertence a um grupo antes de adicioná-lo ao grupo.
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;
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | iads.h |
DLL | Activeds.dll |