次の方法で共有


ICertServerPolicy::GetCertificateExtension メソッド (certif.h)

GetCertificateExtension メソッドは、特定の証明書拡張機能を取得します。

構文

HRESULT GetCertificateExtension(
  [in]  const BSTR strExtensionName,
  [in]  LONG       Type,
  [out] VARIANT    *pvarValue
);

パラメーター

[in] strExtensionName

拡張子の名前を含む文字列。

[in] Type

拡張機能の種類を指定します。 型には、次のいずれかの値を指定できます。

意味
PROPTYPE_LONG
署名された長いデータ
PROPTYPE_DATE
日付/時刻
PROPTYPE_BINARY
拡張値は そのまま取得され、必要に応じて ASN.1 でエンコードされます。
PROPTYPE_STRING
拡張値は、IA5 文字列としてエンコードされた ASN.1 です。

[out] pvarValue

要求された拡張値を受け取る VARIANT へのポインター。

戻り値

C++

メソッドが成功した場合、メソッドは S_OKを返し、 pvarValue パラメーターには拡張値が含まれます。

メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。 一般的なエラー コードの一覧については、「 共通の HRESULT 値」を参照してください。

VB

戻り値は、要求された拡張値です。

注釈

SetContext メソッドは、このメソッドを呼び出す前に呼び出す必要があります。 SetContext の呼び出しは、現在のコンテキストとして使用される要求を指定します。

証明書拡張機能は、証明書のプロパティとは異なります。 プロパティは、要求にアタッチされる汎用データです。 これらのプロパティの一部は証明書 ( BeginDate など) にエンコードされ、他のプロパティはキューとログの要求をマークするためにのみ使用されます。 無効にされていない拡張機能は、証明書にエンコードされます。 拡張機能は常に オブジェクト識別子でマークされ、常にクリティカル/クリティカルでないフラグを持ちます。

VARIANT    varExt;
HRESULT    hr;

VariantInit(&varExt);
// Get the Extension value.
// bstrExtName is BSTR assigned by EnumerateExtensions.
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtension(bstrExtName,
                                                PROPTYPE_BINARY,
                                                &varExt);

if (FAILED(hr))
{
    printf("Failed GetCertificateExtension [%x]\n", hr);
    goto error;
}
// Successful call; use the value in varExt as needed.
// ...

// When done, clear the Variant
VariantClear(&varExt);

要件

要件
サポートされている最小のクライアント サポートなし
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー certif.h (Certsrv.h を含む)
Library Certidl.lib
[DLL] Certcli.dll

こちらもご覧ください

ICertServerPolicy

ICertServerPolicy::GetCertificateExtensionFlags

ICertServerPolicy::SetContext