擷取集合

注意

從 Windows Server 2008 開始,網際網路驗證服務 (IAS) 已重新命名為 NPS (NPS) 。 本主題的內容適用于 IAS 和 NPS。 在整個文字中,NPS 會用來參考服務的所有版本,包括原本稱為 IAS 的版本。

 

下列程式碼會擷取網路原則伺服器的用戶端集合。

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

備註

pSdoServiceControl 變數包含 NPS 伺服器資料物件的指標。 如需詳細資訊,請參閱擷 取服務 SDO主題。

vtClientsCollection 變數的類型為 _variant_t。 _variant_t 物件會封裝或括住 VARIANT 資料類型。 類別會管理資源配置和解除配置,並適當地對 VariantInitVariantClear 進行函式呼叫。

呼叫 「pSdo-GetProperty > () 」 之後,vtProtocolsCollection 變數會指定物件。 vtProtocolsCollection 的 pdispVal 成員包含物件的 IDispatch 介面指標。

上述範例程式碼可以調整為擷取其他 NPS 集合,例如 NPS 要求處理常式集合。 對應至可用 NPS 集合的 IASPROPERTIES 列舉型別列舉值。

_variant_t

IASPROPERTIES

ISdo::GetProperty

ISdoCollection

擷取服務 SDO

VariantClear

VariantInit

變異