Bagikan melalui


Metode ICertServerPolicy::GetCertificateExtensionFlags (certif.h)

Metode GetCertificateExtensionFlags mengambil bendera yang terkait dengan ekstensi yang diperoleh oleh panggilan terbaru ke GetCertificateExtension.

Sintaks

HRESULT GetCertificateExtensionFlags(
  [out] LONG *pExtFlags
);

Parameter

[out] pExtFlags

Penunjuk ke variabel LONG yang berisi bendera ekstensi.

Nilai kembali

C++

Jika metode berhasil, metode mengembalikan S_OK, dan parameter pExtFlags berisi bendera dari ekstensi yang diperoleh oleh panggilan terbaru ke GetCertificateExtension.

Jika metode gagal, metode mengembalikan nilai HRESULT yang menunjukkan kesalahan. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.

VB

Nilai yang dikembalikan adalah bendera dari ekstensi yang diperoleh oleh panggilan terbaru ke GetCertificateExtension.

Keterangan

Metode SetContext dan GetCertificateExtension harus dipanggil sebelum GetCertificateExtensionFlags. Metode SetContext menentukan permintaan mana yang digunakan sebagai konteks saat ini, dan metode GetCertificateExtension mengambil ekstensi untuk permintaan tersebut.

Ekstensi dapat berisi bendera kebijakan dan asal. Bendera kebijakan menyediakan informasi tentang ekstensi sertifikat. Bendera kebijakan dapat ditetapkan oleh modul kebijakan. Bendera asal menunjukkan modul yang mengatur ekstensi sertifikat. Bendera asal hanya diatur oleh mesin server.

Satu atau beberapa bendera kebijakan dapat dikembalikan dari ekstensi. Berikut ini adalah bendera kebijakan yang telah ditentukan sebelumnya.

Nilai bendera kebijakan Penjelasan
EXTENSION_CRITICAL_FLAG Ini adalah ekstensi penting.
EXTENSION_DISABLE_FLAG Ekstensi tidak akan digunakan.
 

Salah satu bendera asal berikut juga dapat dikembalikan.

Nilai bendera asal Penjelasan
EXTENSION_ORIGIN_REQUEST Ekstensi diekstrak dari array ekstensi yang disimpan dalam szOID_CERT_EXTENSIONS (1.3.6.1.4.1.311.2.1.14) atau szOID_RSA_certExtensions (1.2.840.113549.1.9.14) atribut PKCS #10 permintaan.
EXTENSION_ORIGIN_POLICY Modul kebijakan mengatur ekstensi.
EXTENSION_ORIGIN_ADMIN Administrator mengatur ekstensi. Untuk informasi selengkapnya, lihat ICertAdmin::SetCertificateExtension.
EXTENSION_ORIGIN_SERVER Mesin server mengatur ekstensi.
EXTENSION_ORIGIN_RENEWALCERT Ekstensi diekstrak dari sertifikat yang disimpan dalam atribut szOID_RENEWAL_CERTIFICATE (1.3.6.1.4.1.311.13.1) dari permintaan perpanjangan PKCS #10.
EXTENSION_ORIGIN_IMPORTEDCERT Ekstensi diekstrak dari sertifikat yang diimpor (sertifikat diteruskan ke ICertAdmin::ImportCertificate).
EXTENSION_ORIGIN_PKCS7 Ekstensi diekstrak dari array ekstensi yang disimpan dalam szOID_CERT_EXTENSIONS (1.3.6.1.4.1.311.2.1.14) atau szOID_RSA_certExtensions (1.2.840.113549.1.9.14) atribut PKCS #7 permintaan.
 

Masker yang telah ditentukan disediakan untuk kemudahan penggunaan dalam menentukan bendera mana yang diatur dalam nilai pengembalian. Masker berikut disediakan.

Nilai masker Penjelasan
EXTENSION_POLICY_MASK Nilai ini (0x0000FFFF) digunakan untuk memeriksa bendera kebijakan.
EXTENSION_ORIGIN_MASK Nilai ini (0x000F0000) digunakan untuk memeriksa bendera asal.
 

Aman untuk menggunakan 8 bit tinggi EXTENSION_POLICY_MASK untuk data kustom. Bit ini akan disimpan secara terus-menerus dalam database, tetapi tidak akan ditulis ke ekstensi sertifikat.

Contoh

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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Tidak ada yang didukung
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header certif.h (termasuk Certsrv.h)
Pustaka Certidl.lib
DLL Certcli.dll

Lihat juga

ICertAdmin::SetCertificateExtension

ICertServerPolicy

ICertServerPolicy::GetCertificateExtension

ICertServerPolicy::SetContext

IEnumCERTVIEWEXTENSION::GetFlags