ICertServerPolicy::GetCertificateExtensionFlags 메서드(certif.h)
GetCertificateExtensionFlags 메서드는 GetCertificateExtension에 대한 최신 호출에서 획득한 확장과 연결된 플래그를 검색합니다.
구문
HRESULT GetCertificateExtensionFlags(
[out] LONG *pExtFlags
);
매개 변수
[out] pExtFlags
확장 플래그를 포함하는 LONG 변수에 대한 포인터입니다.
반환 값
C++
메서드가 성공하면 메서드는 S_OK 반환하고 pExtFlags 매개 변수에는 GetCertificateExtension에 대한 최신 호출에서 얻은 확장의 플래그가 포함됩니다.메서드가 실패하면 오류를 나타내는 HRESULT 값이 반환됩니다. 일반적인 오류 코드 목록은 일반적인 HRESULT 값을 참조하세요.
VB
반환 값은 GetCertificateExtension에 대한 최신 호출에서 얻은 확장의 플래그입니다.설명
GetCertificateExtensionFlags 전에 SetContext 및 GetCertificateExtension 메서드를 호출해야 합니다. SetContext 메서드는 현재 컨텍스트로 사용되는 요청을 지정하고 GetCertificateExtension 메서드는 요청에 대한 확장을 검색합니다.
확장에는 정책 및 원본 플래그가 포함될 수 있습니다. 정책 플래그는 인증서 확장에 대한 정보를 제공합니다. 정책 플래그는 정책 모듈에서 설정할 수 있습니다. 원본 플래그는 인증서 확장을 설정하는 모듈을 나타냅니다. 원본 플래그는 서버 엔진에서만 설정됩니다.
확장에서 하나 이상의 정책 플래그를 반환할 수 있습니다. 다음은 미리 정의된 정책 플래그입니다.
정책 플래그 값 | 설명 |
---|---|
EXTENSION_CRITICAL_FLAG | 이는 중요한 확장입니다. |
EXTENSION_DISABLE_FLAG | 확장은 사용되지 않습니다. |
다음 원본 플래그 중 하나를 반환할 수도 있습니다.
원본 플래그 값 | 설명 |
---|---|
EXTENSION_ORIGIN_REQUEST | 확장은 PKCS #10 요청의 szOID_CERT_EXTENSIONS(1.3.6.1.4.1.311.2.1.14) 또는 szOID_RSA_certExtensions(1.2.840.113549.1.9.14) 특성에 저장된 확장 배열에서 추출되었습니다. |
EXTENSION_ORIGIN_POLICY | 정책 모듈은 확장을 설정합니다. |
EXTENSION_ORIGIN_ADMIN | 관리자가 확장을 설정합니다. 자세한 내용은 ICertAdmin::SetCertificateExtension을 참조하세요. |
EXTENSION_ORIGIN_SERVER | 서버 엔진이 확장을 설정합니다. |
EXTENSION_ORIGIN_RENEWALCERT | 확장은 PKCS #10 갱신 요청의 szOID_RENEWAL_CERTIFICATE(1.3.6.1.4.1.311.13.1) 특성에 저장된 인증서에서 추출되었습니다. |
EXTENSION_ORIGIN_IMPORTEDCERT | 확장이 가져온 인증서에서 추출되었습니다(인증서가 ICertAdmin::ImportCertificate에 전달됨). |
EXTENSION_ORIGIN_PKCS7 | 확장은 PKCS #7 요청의 szOID_CERT_EXTENSIONS(1.3.6.1.4.1.311.2.1.14) 또는 szOID_RSA_certExtensions(1.2.840.113549.1.9.14) 특성에 저장된 확장 배열에서 추출되었습니다. |
반환 값에 설정된 플래그를 결정하는 데 사용하기 쉽게 미리 정의된 마스크가 제공됩니다. 다음 마스크가 제공됩니다.
마스크 값 | 설명 |
---|---|
EXTENSION_POLICY_MASK | 이 값(0x0000FFFF)은 정책 플래그를 검사하는 데 사용됩니다. |
EXTENSION_ORIGIN_MASK | 이 값(0x000F0000)은 원본 플래그를 검사하는 데 사용됩니다. |
사용자 지정 데이터에 높은 8비트 EXTENSION_POLICY_MASK 사용하는 것이 안전합니다. 이러한 비트는 데이터베이스에 영구적으로 저장되지만 인증서 확장에 기록되지는 않습니다.
예제
HRESULT hr;
LONG ExtFlags;
// pCertServerPolicy has been used to call SetContext previously.
hr = pCertServerPolicy->GetCertificateExtensionFlags( &ExtFlags);
// More than one policy flag might be set.
LONG ExtPolicyFlags = ExtFlags & EXTENSION_POLICY_MASK;
if (ExtPolicyFlags & EXTENSION_CRITICAL_FLAG)
{
// Do something.
}
if (ExtPolicyFlags & EXTENSION_DISABLE_FLAG)
{
// Do something.
}
// only one origin flag can be set
switch (ExtFlags & EXTENSION_ORIGIN_MASK)
{
case EXTENSION_ORIGIN_REQUEST:
// Extension was set in certificate request.
break;
case EXTENSION_ORIGIN_POLICY:
// Extension was set by policy module.
break;
case EXTENSION_ORIGIN_ADMIN:
// Extension was set by administrator.
break;
case EXTENSION_ORIGIN_SERVER:
// Extension was set by server engine.
break;
default:
break;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | 지원되는 버전 없음 |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | certif.h(Certsrv.h 포함) |
라이브러리 | Certidl.lib |
DLL | Certcli.dll |
추가 정보
ICertAdmin::SetCertificateExtension