Abrufen einer Sammlung
Hinweis
Der Internetauthentifizierungsdienst (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 ursprünglich als IAS bezeichneten Versionen.
Der folgende Code ruft die Clientsammlung 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;
}
Bemerkungen
Die Variable pSdoServiceControl enthält einen Zeiger auf ein Server Data Object for NPS. Weitere Informationen finden Sie im Thema Abrufen einer Dienst-SDO.
Die vtClientsCollection-Variable ist vom Typ _variant_t. Ein _variant_t -Objekt kapselt den VARIANT-Datentyp oder schließt es ein. Die -Klasse verwaltet die Ressourcenzuordnung und -zuordnung und führt je nach Bedarf Funktionsaufrufe an VariantInit und VariantClear aus.
Nach dem Aufruf von "pSdo-GetProperty>()" gibt die vtProtocolsCollection-Variable ein Objekt an. Das pdispVal-Element von vtProtocolsCollection enthält einen Zeiger auf die IDispatch-Schnittstelle für das -Objekt.
Der obige Beispielcode kann angepasst werden, um andere NPS-Auflistungen abzurufen, z. B. die NPS-Anforderungshandler-Auflistungen. Der IASPROPERTIES-Enumerationstyp zählt Werte auf, die den verfügbaren NPS-Auflistungen entsprechen.
Zugehörige Themen