Metode ICertServerExit::GetCertificateExtensionFlags (certif.h)
Metode GetCertificateExtensionFlags mendapatkan bendera dari ekstensi yang diperoleh oleh panggilan terbaru ke ICertServerExit::GetCertificateExtension.
Sintaks
HRESULT GetCertificateExtensionFlags(
[out] LONG *pExtFlags
);
Parameter
[out] pExtFlags
Penunjuk ke variabel LONG yang akan berisi bendera ekstensi.
Menampilkan nilai
C++
Jika metode berhasil, metode mengembalikan S_OK, dan *pExtFlags diatur ke variabel yang berisi bendera dari ekstensi yang diperoleh oleh panggilan terbaru ke ICertServerExit::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 ICertServerExit::GetCertificateExtension.Keterangan
Ada dua jenis bendera yang digunakan dalam ekstensi: bendera kebijakan dan bendera asal.
Jenis bendera | Penjelasan |
---|---|
Kebijakan | Menyediakan informasi tentang ekstensi sertifikat. Bendera kebijakan dapat diatur oleh modul kebijakan. |
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 di 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 di szOID_RENEWAL_CERTIFICATE (1.3.6.1.4.1.311.13.1) atribut 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 di 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 sebelumnya 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 terus-menerus dalam database tetapi tidak akan ditulis ke ekstensi sertifikat.
Anda harus memanggil ICertServerExit::SetContext sebelum menggunakan metode ini.
Contoh
HRESULT hr;
LONG ExtFlags;
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateExtensionFlags(&ExtFlags);
// More than one policy flag may be set.
LONG ExtPolicyFlags = ExtFlags & EXTENSION_POLICY_MASK;
if (ExtPolicyFlags & EXTENSION_CRITICAL_FLAG)
{
// Perform the desired operation.
}
if (ExtPolicyFlags & EXTENSION_DISABLE_FLAG)
{
// Perform the desired operation.
}
// 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;
case EXTENSION_ORIGIN_RENEWALCERT:
// Extension was set by renewal certificate.
break;
case EXTENSION_ORIGIN_IMPORTEDCERT:
// Extension was set by imported certificate.
break;
case EXTENSION_ORIGIN_PKCS7:
// Extension was set by PKCS #7.
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
CCertServerExit
ICertAdmin::SetCertificateExtension
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk