擷取集合
注意
從 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 資料類型。 類別會管理資源配置和解除配置,並適當地對 VariantInit 和 VariantClear 進行函式呼叫。
呼叫 「pSdo-GetProperty > () 」 之後,vtProtocolsCollection 變數會指定物件。 vtProtocolsCollection 的 pdispVal 成員包含物件的 IDispatch 介面指標。
上述範例程式碼可以調整為擷取其他 NPS 集合,例如 NPS 要求處理常式集合。 對應至可用 NPS 集合的 IASPROPERTIES 列舉型別列舉值。
相關主題