다음을 통해 공유


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을 둘 이상 사용할 수 없습니다.

[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 포함)
라이브러리 Certidl.lib
DLL Certadm.dll

추가 정보

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig