Abrufen einer Auflistung
Hinweis
Internet Authentication Service (IAS) wurde ab Windows Server 2008 in Network Policy Server (NPS) umbenannt. Der Inhalt dieses Themas gilt sowohl für IAS als auch für NPS. Im gesamten Text wird NPS verwendet, um auf alle Versionen des Diensts zu verweisen, einschließlich der Versionen, die ursprünglich als IAS bezeichnet wurden.
Der folgende Code ruft die Clientssammlung für den Netzwerkrichtlinienserver ab.
// 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;
}
Hinweise
Die pSdoServiceControl-Variable enthält einen Zeiger auf ein Serverdatenobjekt für NPS. Weitere Informationen finden Sie im Thema Abrufen eines Dienst-SDO.
Die Variable vtClientsCollection ist vom Typ _ variant _ t. Ein _ Variant _ t-Objekt kapselt den VARIANT-Datentyp oder schließt ihn ein. Die -Klasse verwaltet die Ressourcenzuordnung und -freigabe und führt Funktionsaufrufe an VariantInit und VariantClear durch.
Nach dem Aufruf von "pSdo->GetProperty()" gibt die vtProtocolsCollection-Variable ein -Objekt an. Der pdispVal-Member von vtProtocolsCollection enthält einen Zeiger auf die IDispatch-Schnittstelle für das -Objekt.
Der obige Beispielcode kann angepasst werden, um andere NPS-Sammlungen abzurufen, z. B. die NPS-Anforderungshandlersammlungen. Der ENUMERATIONstyp IASPROPERTIES hat Werte aufgelistet, die den verfügbaren NPS-Auflistungen entsprechen.