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
NotBefore
Tanggal/Waktu
Sertifikat tidak valid sebelum tanggal yang diberikan.
NotAfter
Tanggal/Waktu
Sertifikat tidak valid setelah tanggal yang diberikan.
GeneralFlags
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.
 
Windows Storage Server 2003: Bidang ini tidak didukung.
CrossForest
PROPTYPE_LONG
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.

RequesterSAMName
PROPTYPE_STRING
Memberi tahu CA untuk mengatur nama akun pemohon ("RequesterName") dan nama yang dibedakan.
RequesterUPN
PROPTYPE_STRING
Memberi tahu CA untuk mengonversi nama prinsipal pengguna (UPN) pemohon ke nama pemohon ("RequesterName") dan untuk mengatur nama pemohon dan nama khusus pemohon.
RequesterDN
PROPTYPE_STRING
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
PROPTYPE_LONG
Data panjang yang ditandatangani.
PROPTYPE_DATE
Data tanggal/waktu.
PROPTYPE_BINARY
Data biner.
PROPTYPE_STRING
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

Lihat juga

ICertServerExit::GetCertificateProperty

ICertServerPolicy

ICertServerPolicy::SetContext

Properti Nama