ICertRequest::GetCertificate method (certcli.h)
Metode GetCertificate mengembalikan sertifikat yang dikeluarkan untuk permintaan sebagai sertifikat X.509 , atau secara opsional dikemas dalam pesan Standar Kriptografi Kunci Publik (PKCS) #7 yang berisi rantai sertifikat lengkap untuk server Layanan Sertifikat .
Sintaks
HRESULT GetCertificate(
[in] LONG Flags,
[out] BSTR *pstrCertificate
);
Parameter
[in] Flags
Bendera untuk format dan apakah rantai sertifikat lengkap disertakan.
Format sertifikat yang dikembalikan bisa menjadi salah satu bendera berikut.
Nilai | Makna |
---|---|
|
Format BASE64 dengan awal/akhir |
|
Format BASE64 tanpa awal/akhir |
|
Format biner |
Bendera berikut dapat digabungkan dengan bendera format.
Nilai | Makna |
---|---|
|
Sertakan rantai sertifikat lengkap dalam PKCS #7.
Jika bendera ini tidak ditentukan, hanya sertifikat yang diminta, dalam format X.509 , yang dikembalikan. |
|
Sertakan daftar pencabutan sertifikat (CRL) di PKCS #7. |
Misalnya, untuk mengambil sertifikat biner dengan rantai sertifikat lengkap di C++ Anda akan menulis yang berikut.
hResult = pCertReq->GetCACertificate(FALSE, bstrConfig,
CR_OUT_BINARY | CR_OUT_CHAIN, &bstrCert);
[out] pstrCertificate
Penunjuk ke BSTR yang berisi sertifikat, dalam format yang ditentukan.
Saat menggunakan metode ini, buat variabel jenis BSTR , atur variabel yang sama dengan NULL, lalu teruskan alamat variabel ini sebagai pstrCertificate. Setelah Anda selesai menggunakan sertifikat yang diarahkan oleh pstrCertificate, bebaskan dengan memanggil fungsi SysFreeString .
Nilai kembali
Jika metode menetapkan *pstrCertificate ke BSTR yang berisi sertifikat untuk permintaan, metode akan mengembalikan S_OK.
Jika metode gagal, metode mengembalikan nilai HRESULT yang menunjukkan kesalahan. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.
Keterangan
Aplikasi akan memanggil metode ini untuk mengambil sertifikat yang dikeluarkan melalui panggilan sebelumnya ke ICertRequest3::Submit atau ICertRequest3::RetrievePending.
Contoh
Contoh berikut menunjukkan pengambilan sertifikat.
#include <windows.h>
#include <stdio.h>
#include <Certcli.h>
HRESULT main()
{
// Pointer to interface object.
ICertRequest * pCertRequest = NULL;
// Variable for COMPUTER\CANAME.
BSTR bstrCA = NULL;
// Variable for CA Certificate.
BSTR bstrCACert = NULL;
HRESULT hr;
// Initialize COM.
hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
// Check status.
if (FAILED(hr))
{
printf("Failed CoInitializeEx [%x]\n", hr);
goto error;
}
// Instantiate the CertConfig object.
hr = CoCreateInstance(CLSID_CCertRequest,
NULL,
CLSCTX_INPROC_SERVER,
IID_ICertRequest,
(void **)&pCertRequest);
if (FAILED(hr))
{
printf("Failed CoCreateInstance pCertRequest [%x]\n", hr);
goto error;
}
// Note use of two backslashes (\\) in C++
// to produce one backslash (\).
bstrCA = SysAllocString(L"server01\\myCAName");
// Retrieve the CA certificate.
hr = pCertRequest->GetCACertificate(FALSE,
bstrCA,
CR_OUT_BASE64,
&bstrCACert);
if (FAILED(hr))
{
printf("Failed GetCACertificate [%x]\n", hr);
goto error;
}
else
{
// Use CA Certificate as needed.
}
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrCACert)
SysFreeString(bstrCACert);
// Clean up object resources.
if (NULL != pCertRequest)
pCertRequest->Release();
// Free COM resources.
CoUninitialize();
return hr;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | certcli.h (termasuk Certsrv.h) |
Pustaka | Certidl.lib |
DLL | Certcli.dll |
Lihat juga
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