컬렉션 검색

참고

IAS(인터넷 인증 서비스)의 이름이 Windows Server 2008부터 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

변형