ICertAdmin::IsValidCertificate メソッド (certadm.h)

IsValidCertificate メソッドは、証明機関 (CA) キーに対して証明書を検証し、証明書が取り消されていないことを確認します。 このメソッドは、最初に ICertAdmin インターフェイスで定義されました。

構文

HRESULT IsValidCertificate(
  [in]          const BSTR strConfig,
  [in]          const BSTR strSerialNumber,
  [out, retval] LONG       *pDisposition
);

パラメーター

[in] strConfig

COMPUTERNAME\CANAME 形式の CA の有効な構成文字列を表します。COMPUTERNAME は証明書サービス サーバーのネットワーク名、CANAME は証明書サービスのセットアップ時に入力された証明機関の共通名です。 構成文字列名の詳細については、「 ICertConfig」を参照してください。

重要IsValidCertificate は、構成文字列が変更されたときに内部キャッシュをクリアしません。 CA の構成文字列を変更する場合は、新しい ICertAdmin オブジェクトをインスタンス化し、このメソッドを新しい構成文字列で再度呼び出す必要があります。
 

[in] strSerialNumber

確認する証明書を識別するシリアル番号を指定します。 文字列では、シリアル番号を偶数の 16 進数として指定する必要があります。 必要に応じて、数字の前に 0 を付けて、偶数桁を生成できます。 先頭に 0 を 1 つ以上使用することはできません。

[out, retval] pDisposition

処理値を受け取る LONG へのポインター。

戻り値

C++

メソッドが成功し、 pDisposition パラメーターが次のいずれかの値に設定されている場合、メソッドは S_OKを返します。

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

VB

戻り値は、証明書の処理を指定します。 この値は、次のいずれかの値です。 (これらの値は Certadm.h で定義されています)。
リターン コード 説明
CA_DISP_INCOMPLETE
呼び出しが完了していません。
CA_DISP_ERROR
呼び出しに失敗しました。
CA_DISP_REVOKED
証明書は失効しています。
CA_DISP_VALID
証明書は引き続き有効です。
CA_DISP_INVALID
証明書は発行されませんでした。
CA_DISP_UNDER_SUBMISSION
証明書が保留中です。

注釈

このメソッドは、証明書が発行され、現在取り消されていないかどうかを判断します。現在の時刻と日付が、証明書が有効な期間内 (NotBefore および NotAfter 証明書のプロパティ) 内にあることをチェックしません。 このメソッドを使用するアプリケーションは、証明書の有効期限を確認する役割も担います。

管理タスクでは DCOM を使用します。 以前のバージョンの Certadm.h で定義されているこのインターフェイス メソッドを呼び出すコードは、クライアントとサーバーの両方が同じ Windows オペレーティング システムを実行している限り、Windows ベースのサーバー上で実行されます。

    BSTR       bstrCA = NULL;      // Machine\CAName
    BSTR       bstrSerial = NULL;  // Contains the certificate 
                             // serial number
    long       nDisp;              // Contains the certificate
                             // disposition
    HRESULT    hr;

    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    bstrSerial = SysAllocString(L"<SERIALNUMBERHERE>");

    if (NULL == bstrCA || NULL == bstrSerial)
    {
        printf("Memory allocation failed\n");
        goto error;
    }

    //  Determine whether the certificate is valid.
    //  pCertAdmin is a previously instantiated ICertAdmin 
    //  object pointer.
    hr = pCertAdmin->IsValidCertificate(bstrCA, bstrSerial, &nDisp);
    if (FAILED(hr))
    {
        printf("Failed IsValidCertificate [%x]\n", hr);
        goto error;
    }
    //  Use nDisp as needed.

    //  Done processing.

error:

    //  Free BSTR values.
    if (NULL != bstrCA)
        SysFreeString(bstrCA);

    if (NULL != bstrSerial)
        SysFreeString(bstrSerial);

要件

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

こちらもご覧ください

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig