Bagikan melalui


Metode ICertServerExit::GetCertificateProperty (certif.h)

Metode GetCertificateProperty mengembalikan properti bernama dari sertifikat.

Sintaks

HRESULT GetCertificateProperty(
  [in]  const BSTR strPropertyName,
  [in]  LONG       PropertyType,
  [out] VARIANT    *pvarPropertyValue
);

Parameter

[in] strPropertyName

Menentukan properti bernama untuk diambil. Ada sekumpulan properti sertifikat stok, yang disebut sebagai properti nama, yang selalu valid dan dapat diambil dengan memanggil metode ini. Untuk informasi tentang properti ini, lihat Properti Nama. Properti lain yang dapat diambil termasuk properti sertifikat.

Properti berikut ini unik untuk sertifikat dan dapat dibaca oleh GetCertificateProperty.

Nilai Makna
NotBefore
Tanggal/Waktu
Tanggal validitas mulai sertifikat
NotAfter
Tanggal/Waktu
Tanggal kedaluwarsa sertifikat
PublicKeyAlgorithm
String
Pengidentifikasi objek algoritma kunci subjek (OID)
RawCertificate
Biner
Byte sertifikat mentah
RawPublicKey
Biner
Kunci subjek
RawPublicKeyAlgorithmParameters
Biner
Parameter algoritma kunci subjek
RequestID
Ditandatangani Panjang
ID permintaan internal
SerialNumber
String
Nomor seri sertifikat
 

Properti DistinguishedName, RawName, dan SerialNumber sertifikat dapat diakses oleh GetCertificateProperty hanya setelah modul kebijakan selesai memproses permintaan dan sertifikat dikeluarkan.

Properti berikut berlaku untuk otoritas sertifikasi. Konteksnya harus nol untuk membaca salah satu properti ini. Konteks diatur ke nol ketika objek ICertServerExit awalnya dibuat. Ini juga dapat diatur ke nol dengan memanggil metode SetContext .

Nilai Makna
JENIS CA
Long
Jenis otoritas sertifikasi. Ini bisa menjadi salah satu nilai berikut (didefinisikan dalam Certsrv.h):

ENUM_ENTERPRISE_ROOTCA

ENUM_ENTERPRISE_SUBCA

ENUM_STANDALONE_ROOTCA

ENUM_STANDALONE_SUBCA

CertCount
Long
Jumlah sertifikat CA. Nilai ini akan menjadi satu ditambah berapa kali CA telah diperbarui. Untuk informasi tentang perpanjangan, lihat Perpanjangan Otoritas Sertifikasi.
CertState
Long
Status sertifikat CA. Ini bisa menjadi salah satu nilai berikut:
CA_DISP_ERROR: Sertifikat CA tidak pernah dikeluarkan.
CA_DISP_REVOKED: Sertifikat CA telah dicabut.
CA_DISP_VALID: Sertifikat CA masih valid.
CA_DISP_INVALID: Sertifikat CA telah kedaluwarsa.
Nama properti ini dapat ditambahkan dengan '.#', di mana # mewakili indeks sertifikat CA (atau, dalam kasus properti CRLSuffix, indeks CRL). Untuk informasi tentang sertifikat dan indeks CRL, lihat Perpanjangan Otoritas Sertifikasi.
CertSuffix
String
Akhiran untuk sertifikat CA. Akhiran adalah string kosong untuk sertifikat CA dengan indeks nol; jika tidak, akhiran (dalam bentuk "(nn)", di mana nn adalah indeks sertifikat) diterapkan ke semua URL yang menunjuk ke sertifikat CA yang disimpan dalam file atau objek layanan direktori. Untuk URL non-LDAP , akhiran biasanya muncul sebelum teks ".crt". Untuk URL LDAP, akhiran biasanya ditambahkan ke 'CN=' pertama dalam nama khusus lengkap.

Nama properti ini dapat ditambahkan dengan '.#', di mana # mewakili indeks sertifikat CA (atau, dalam kasus properti CRLSuffix, indeks CRL). Untuk informasi tentang sertifikat dan indeks CRL, lihat Perpanjangan Otoritas Sertifikasi.

CRLIndex
Long
Indeks daftar pencabutan sertifikat (CRL). Menambahkan indeks sertifikat ke nama properti ini memungkinkan Anda untuk mengambil indeks CRL. Indeks CRL tidak selalu cocok dengan indeks sertifikat. Untuk informasi selengkapnya, lihat Sertifikasi.

Nama properti ini dapat ditambahkan dengan '.#', di mana # mewakili indeks sertifikat CA (atau, dalam kasus properti CRLSuffix, indeks CRL). Untuk informasi tentang sertifikat dan indeks CRL, lihat Perpanjangan Otoritas Sertifikasi.

CRLState
Long
Status CRL. Ini bisa menjadi salah satu nilai berikut:
CA_DISP_ERROR: CRL dikelola oleh sertifikat CA lain.
CA_DISP_REVOKED: Semua sertifikat CA yang tidak kedaluwarsa yang menggunakan CRL sertifikat CA ini telah dicabut.
CA_DISP_VALID: Sertifikat CA masih digunakan untuk menerbitkan CRL sesuai kebutuhan.
CA_DISP_INVALID: Semua sertifikat CA yang menggunakan CRL sertifikat CA ini kedaluwarsa.
Nama properti ini dapat ditambahkan dengan '.#', di mana # mewakili indeks sertifikat CA (atau, dalam kasus properti CRLSuffix, indeks CRL). Untuk informasi tentang sertifikat dan indeks CRL, lihat Perpanjangan Otoritas Sertifikasi.
CRLSuffix
String
Akhiran untuk CA CRL. Akhiran adalah string kosong untuk CRL dengan indeks nol; jika tidak, akhiran (dalam bentuk "(nn)", di mana nn adalah indeks CRL) diterapkan ke semua URL yang menunjuk ke CRL yang disimpan dalam file atau objek layanan direktori. Untuk URL non-LDAP, akhiran biasanya muncul sebelum teks ".crl". Untuk URL LDAP, akhiran biasanya ditambahkan ke 'CN=' pertama dalam nama khusus lengkap.

Nama properti ini dapat ditambahkan dengan '.#', di mana # mewakili indeks sertifikat CA (atau, dalam kasus properti CRLSuffix, indeks CRL). Untuk informasi tentang sertifikat dan indeks CRL, lihat Perpanjangan Otoritas Sertifikasi.

fUseDS
Long
Menunjukkan apakah CA menggunakan layanan direktori. Ini bisa menjadi salah satu nilai berikut:
  • 0=tidak
  • 1=ya
MachineDNSName
String
Nama DNS server yang menghosting CA.
ModuleRegistryLocation
String
Lokasi registri tersedia untuk digunakan oleh modul.
RawCACertificate
Biner
Sertifikat CA.

Nama properti ini dapat ditambahkan dengan '.#', di mana # mewakili indeks sertifikat CA (atau, dalam kasus properti CRLSuffix, indeks CRL). Untuk informasi tentang sertifikat dan indeks CRL, lihat Perpanjangan Otoritas Sertifikasi.

RawCRL
Biner
Daftar pencabutan sertifikat (CRL) CA.

Nama properti ini dapat ditambahkan dengan '.#', di mana # mewakili indeks sertifikat CA (atau, dalam kasus properti CRLSuffix, indeks CRL). Untuk informasi tentang sertifikat dan indeks CRL, lihat Perpanjangan Otoritas Sertifikasi.

RequesterCAAccess
Long
Menunjukkan apakah pemohon berwenang untuk meminta sertifikat. Ini bisa menjadi salah satu nilai berikut:
  • 0=tidak
  • 1=ya
(Snap-in MMC Otoritas Sertifikasi dapat digunakan untuk mengontrol izin permintaan sertifikat .)
SanitizedCAName
String
Nama sanitasi untuk CA. Untuk informasi tentang nama CA yang dibersamakan, lihat ICertConfig::GetConfig.
SanitizedShortName
String
Nama yang dibersihkan untuk CA, dipersingkat dan berisi nilai hash untuk memastikan keunikan.

[in] PropertyType

Menentukan jenis properti. Jenisnya bisa menjadi salah satu dari berikut ini.

Nilai Makna
PROPTYPE_LONG
Data panjang yang ditandatangani
PROPTYPE_DATE
Tanggal/Waktu
PROPTYPE_BINARY
Data biner
PROPTYPE_STRING
Data untai (karakter) Unicode

[out] pvarPropertyValue

Penunjuk ke VARIAN yang akan berisi nilai properti. Nilai yang dikembalikan dikodekan sebagai BSTR. Gunakan fungsi SysStringByteLen untuk mengambil panjang BSTR. BLOB biner disimpan sebagai sertifikat X.509 yang dikodekan Distinguished Encoding Rules.

Mengembalikan nilai

C++

Jika metode berhasil, metode akan mengembalikan S_OK.

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

VB

Nilai yang dikembalikan adalah nilai properti yang diminta.

Keterangan

Anda harus memanggil ICertServerExit::SetContext sebelum menggunakan metode ini.

Contoh

BSTR    bstrPropName = NULL;
VARIANT varProp;

VariantInit(&varProp);

// Set the property name to RequestID.
bstrPropName = SysAllocString(L"RequestID");

// Retrieve the certificate property.
// pCertServerExit has been used to call SetContext previously.
hr = pCertServerExit->GetCertificateProperty(bstrPropName,
                                             PROPTYPE_LONG,
                                             &varProp );
if (FAILED(hr))
{
    printf("Failed GetCertificateProperty [%x]\n", hr);
    goto error;
}
else
{
    // Successfully retrieved property; use varProp as needed.
    // ...
}

// Done processing.
if (NULL != bstrPropName)
    SysFreeString(bstrPropName);
VariantClear(&varProp);

Persyaratan

   
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

ICertServerExit

ICertServerExit::SetContext

Properti Nama