Condividi tramite


Recupero di una raccolta

Nota

Internet Authentication Service (IAS) è stato rinominato Server dei criteri di rete (NPS) a partire da Windows Server 2008. Il contenuto di questo argomento si applica sia a IAS che a NPS. In tutto il testo, NPS viene usato per fare riferimento a tutte le versioni del servizio, incluse le versioni originariamente definite IAS.

 

Il codice seguente recupera la raccolta client per il server dei criteri di rete.

// 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;
   }

Commenti

La variabile pSdoServiceControl contiene un puntatore a un oggetto dati server per NPS. Per altre informazioni, vedere l'argomento Recupero di un SDO del servizio.

La variabile vtClientsCollection è di tipo _variant_t. Oggetto _variant_t incapsula o racchiude il tipo di dati VARIANT . La classe gestisce l'allocazione e la deallocazione delle risorse e effettua chiamate di funzione a VariantInit e VariantClear in base alle esigenze.

Dopo la chiamata a "pSdo-GetProperty>()", la variabile vtProtocolsCollection specifica un oggetto. Il membro pdispVal di vtProtocolsCollection contiene un puntatore all'interfaccia IDispatch per l'oggetto.

Il codice di esempio precedente può essere adattato per recuperare altre raccolte nps, ad esempio le raccolte dei gestori di richieste nps. Valori enumerati del tipo di enumerazione IASPROPERTIES che corrispondono alle raccolte NPS disponibili.

_variant_t

IASPROPERTIES

ISdo::GetProperty

ISdoCollection

Recupero di un SDO del servizio

VariantClear

VariantInit

VARIANTE