Metode ICertServerPolicy::SetCertificateProperty (certif.h)
Gunakan metode SetCertificateProperty untuk mengatur properti yang terkait dengan sertifikat.
Sintaks
HRESULT SetCertificateProperty(
[in] const BSTR strPropertyName,
[in] LONG PropertyType,
[in] const VARIANT *pvarPropertyValue
);
Parameter
[in] strPropertyName
Menentukan properti yang akan disetel. Anda dapat mengatur salah satu Properti Nama yang terkait dengan sertifikat.
Selain itu, Anda dapat mengatur properti sertifikat berikut.
Nilai | Makna |
---|---|
|
Sertifikat tidak valid sebelum tanggal yang diberikan. |
|
Sertifikat tidak valid setelah tanggal yang diberikan. |
|
Atur properti ini ke 0x00000400 untuk mencegah permintaan dipertahankan dalam database CA.
Hati Jangan timpa nilai masker apa pun yang dikembalikan oleh GetCertificateProperty saat mengatur properti ini. Atur nilai dengan melakukan bitwise ATAU dengan nilai yang ada.
|
|
Nilai Boolean yang menentukan apakah CA harus mengoperasikan mode pendaftaran lintas forest.
Windows Server 2008 dan Windows Server 2003: Pendaftaran lintas forest tidak didukung. Pendaftaran lintas forest didukung dimulai dengan Windows Server 2008 R2. |
|
Memberi tahu CA untuk mengatur nama akun pemohon ("RequesterName") dan nama yang dibedakan. |
|
Memberi tahu CA untuk mengonversi nama prinsipal pengguna (UPN) pemohon ke nama pemohon ("RequesterName") dan untuk mengatur nama pemohon dan nama khusus pemohon. |
|
Memberi tahu CA untuk mengonversi nama FQDN 1779 pemohon ke nama pemohon dan untuk mengatur nama pemohon ("RequesterName") dan nama yang dibedakan pemohon. |
[in] PropertyType
Menentukan tipe properti yang sedang disetel. Parameter Jenis harus setuju dengan jenis data pvarValue yang diatur dalam bidang vt dari struktur VARIAN . Parameter Jenis dapat diatur ke salah satu jenis berikut.
Nilai | Makna |
---|---|
|
Data panjang yang ditandatangani. |
|
Data tanggal/waktu. |
|
Data biner. |
|
Data untai (karakter) Unicode |
[in] pvarPropertyValue
Menentukan nilai untuk mengatur properti.
Nilai kembali
VB
Jika metode berhasil, metode mengembalikan S_OK.Jika metode gagal, metode mengembalikan nilai HRESULT yang menunjukkan kesalahan. Untuk daftar kode kesalahan umum, lihat Nilai HRESULT Umum.
Keterangan
Anda harus memanggil ICertServerPolicy::SetContext sebelum menggunakan metode ini.
Properti sertifikat NotBefore dan NotAfter membatasi masa pakai saat sertifikat valid. Jenis data untuk properti ini adalah tanggal VARIAN floating-point yang berasal dari COleDateTime di Automation.
Pembatasan berikut berlaku saat mengatur properti sertifikat NotBefore dan NotAfter dengan SetCertificateProperty:
- Tanggal NotBefore tidak dapat diatur ke tanggal yang lebih awal dari tanggal NotBefore sertifikat otoritas sertifikasi (CA).
- Tanggal NotAfter tidak dapat diatur ke tanggal yang lebih lambat dari tanggal NotAfter sertifikat CA.
- Tanggal NotBefore tidak dapat diatur ke tanggal yang lebih awal dari yang sudah ditetapkan, bahkan jika tanggal baru lebih lambat dari tanggal NotBefore sertifikat CA.
- Tanggal NotAfter tidak dapat diatur ke tanggal yang lebih lambat dari yang sudah ditetapkan, bahkan jika tanggal baru sebelum tanggal NotAfter sertifikat CA.
Contoh
Contoh berikut memanggil metode SetCertificateProperty untuk mengatur properti sertifikat NotBefore. Contoh mengasumsikan pServer valid dan metode ICertServerPolicy::SetContext telah dipanggil.
HRESULT hr;
ICertServerPolicy *pServer;
SYSTEMTIME st;
BSTR bstrPropName;
VARIANT vPropValue;
bstrPropName = SysAllocString(L"NotBefore");
if (NULL == bstrPropName)
{
printf("Unable to allocate memory.\n");
return E_OUTOFMEMORY;
}
// Set the 'NotBefore' property to Noon on Jan. 1, 2000.
memset( &st, 0, sizeof(SYSTEMTIME));
st.wYear = 2000;
st.wMonth = 1; // Jan.
st.wDay = 1; // 1st day of month.
st.wHour = 12; // Noon.
// Place the date into VARIANT required format.
VariantInit( &vPropValue );
vPropValue.vt = VT_DATE;
if ( !SystemTimeToVariantTime( &st, &vPropValue.date))
{
printf("Unable to convert time.\n");
SysFreeString(bstrPropName);
return E_FAIL
}
// Set the NotBefore property in the certificate:
hr = pServer->SetCertificateProperty(bstrPropName,
PROPTYPE_DATE,
&vPropValue);
SysFreeString(bstrPropName);
VariantClear(&vPropValue);
if (FAILED(hr))
{
printf("SetCertificateProperty failed [%x]\n", hr);
return hr;
}
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 |