Récupération d’une collection
Notes
Le service d’authentification Internet (IAS) a été renommé serveur NPS (Network Policy Server) à compter de Windows Server 2008. Le contenu de cette rubrique s’applique à la fois à IAS et à NPS. Tout au long du texte, NPS est utilisé pour faire référence à toutes les versions du service, y compris les versions initialement appelées IAS.
Le code suivant récupère la collection de clients pour le serveur de stratégie réseau.
// Retrieve the clients collection
HRESULT hr;
CComPtr<ISdo> pSdo;
hr = pSdoServiceControl->QueryInterface(
__uuidof(ISdo),
(void**) &pSdo
);
if (FAILED(hr))
{
return hr;
}
//
// First Retrieve the protocols collection
//
_variant_t vtProtocolsCollection;
hr = pSdo->GetProperty(
PROPERTY_IAS_PROTOCOLS_COLLECTION,
&vtProtocolsCollection
);
if (FAILED(hr))
{
return hr;
}
//
// Get the ISdoCollection interface
// for the object.
//
CComPtr<ISdoCollection> pProtocolsCollection;
hr = vtProtocolsCollection.pdispVal->QueryInterface(
__uuidof(ISdoCollection),
(void **) &pProtocolsCollection
);
if (FAILED(hr))
{
return hr;
}
//
// Then retrieve the RADIUS protocol
//
CComPtr<IDispatch> pRadiusDispatch;
_variant_t vtProtocolName = L"Microsoft Radius Protocol";
hr = pProtocolsCollection->Item(&vtProtocolName, &pRadiusDispatch);
if (FAILED(hr))
{
return hr;
}
CComPtr<ISdo> pRadiusSdo;
hr = pRadiusDispatch->QueryInterface(
__uuidof(ISdo),
(void **) &pRadiusSdo
);
if (FAILED(hr))
{
return hr;
}
//
// Then retrieve the clients collection
//
_variant_t vtClientsCollection;
hr = pRadiusSdo->GetProperty(PROPERTY_RADIUS_CLIENTS_COLLECTION, &vtClientsCollection);
if (FAILED(hr))
{
return hr;
}
CComPtr<ISdoCollection> pClientsCollection;
hr = vtClientsCollection.pdispVal->QueryInterface(
__uuidof(ISdoCollection),
(void **) &pClientsCollection
);
if (FAILED(hr))
{
return hr;
}
Notes
La variable pSdoServiceControl contient un pointeur vers un objet de données serveur pour NPS. Pour plus d’informations, consultez la rubrique Récupération d’un SDO de service.
La variable vtClientsCollection est de type _variant_t. Un objet _variant_t encapsule, ou entoure, le type de données VARIANT . La classe gère l’allocation et la désallocation des ressources, et effectue des appels de fonction à VariantInit et VariantClear comme il convient.
Après l’appel à « pSdo-GetProperty>() », la variable vtProtocolsCollection spécifie un objet. Le membre pdispVal de vtProtocolsCollection contient un pointeur vers l’interface IDispatch pour l’objet .
L’exemple de code ci-dessus peut être adapté pour récupérer d’autres collections NPS, par exemple les collections gestionnaires de requêtes NPS. Le type d’énumération IASPROPERTIES énumérait des valeurs qui correspondent aux collections NPS disponibles.
Rubriques connexes