コレクションの取得
注意
Windows Server 2008 以降、インターネット認証サービス (IAS) の名前がネットワーク ポリシー サーバー (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 列挙型の列挙値。
関連トピック