Metode ICertAdmin::SetRequestAttributes (certadm.h)

Metode SetRequestAttributes menetapkan atribut dalam permintaan sertifikat yang tertunda yang ditentukan. Metode ini pertama kali didefinisikan dalam antarmuka ICertAdmin .

Agar metode ini berhasil, permintaan sertifikat harus tertunda.

Sintaks

HRESULT SetRequestAttributes(
  [in] const BSTR strConfig,
  [in] LONG       RequestId,
  [in] const BSTR strAttributes
);

Parameter

[in] strConfig

Mewakili string konfigurasi yang valid untuk server otoritas sertifikasi (CA) dalam bentuk COMPUTERNAME\CANAME, di mana COMPUTERNAME adalah nama jaringan server Layanan Sertifikat dan CANAME adalah nama umum otoritas sertifikasi, seperti yang dimasukkan selama penyiapan Layanan Sertifikat. Untuk informasi tentang nama string konfigurasi, lihat ICertConfig.

SetRequestAttributes penting tidak menghapus cache internal saat string konfigurasi diubah. Saat Anda mengubah string konfigurasi untuk CA, Anda harus membuat instans objek ICertAdmin baru dan memanggil metode ini lagi dengan string konfigurasi baru.
 

[in] RequestId

Menentukan ID permintaan yang menerima atribut.

[in] strAttributes

Menentukan data atribut. Setiap atribut adalah pasangan string nilai nama. Karakter titik dua memisahkan nama dan nilai, dan karakter baris baru memisahkan beberapa pasangan nama-nilai, misalnya:

C++ AttributeName1:AttributeValue1\nAttributeName2:AttributeValue2
VB AttributeName1:AttributeValue1 & vbNewLine & AttributeName2:AttributeValue2
Tidak ada batasan yang ditetapkan untuk jumlah atribut permintaan yang dapat ditambahkan ke permintaan.

Saat Layanan Sertifikat menguraikan nama atribut, Layanan Sertifikat mengabaikan spasi, tanda hubung (tanda minus), dan huruf besar/kecil. Misalnya, AttributeName1, Attribute Name1, dan Attribute-name1 semuanya setara. Untuk nilai atribut, Layanan Sertifikat mengabaikan spasi kosong di awal dan akhir.

Catatan Panjang maksimum untuk nama atribut adalah 127 karakter non-NULL . Panjang maksimum untuk nilai atribut adalah 4.096 karakter non-NULL .
 

Menampilkan nilai

VB

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.

Keterangan

Atribut yang ditambahkan atau diperbarui dengan memanggil SetRequestAttributes tidak mengubah string atribut awal yang tidak dipisahkan yang terkait dengan permintaan sertifikat. String atribut yang tidak diparsing permintaan sertifikat tidak dapat diubah setelah sertifikat diminta (metode ICertRequest::Submit memungkinkan atribut ditentukan pada saat sertifikat diminta).

Anda dapat menggunakan snap-in MMC Otoritas Sertifikasi untuk menampilkan string atribut permintaan awal yang tidak dipisahkan.

Saat Anda melihat atribut yang diurai, Anda juga akan melihat perubahan apa pun karena panggilan ke SetRequestAttributes.

Untuk melihat atribut yang diurai

  1. Buka snap-in MMC Otoritas Sertifikasi.
  2. Buka folder Permintaan Tertunda .
  3. Klik kanan permintaan, arahkan ke Semua Tugas, lalu klik Tampilkan Atribut/Ekstensi.
Untuk menghitung atau melihat semua atribut yang diurai, termasuk yang ditambahkan melalui SetRequestAttributes, Anda juga dapat menggunakan antarmuka IEnumCERTVIEWATTRIBUTE .

Tugas administrasi menggunakan DCOM. Kode yang memanggil metode antarmuka ini seperti yang didefinisikan dalam versi Certadm.h sebelumnya akan berjalan pada server berbasis Windows selama klien dan server keduanya menjalankan sistem operasi Windows yang sama.

Contoh

    BSTR bstrAttribs = NULL;
    BSTR bstrCA = NULL;
    long nReqID;  // request ID

    //  Specify the attributes.
    //  For example, "AttName1:AttValue1\nAttName2:AttValue2". 
    bstrAttribs = SysAllocString(L"<ATTRIBUTESHERE>");
    if (NULL == bstrAttribs)
    {
        printf("Memory allocation failed for bstrAttribs.\n");
        goto error;
    }
    
    bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
    if (NULL == bstrCA)
    {
        printf("Memory allocation failed for bstrCA.\n");
        goto error;
    }

    //  Request ID to receive the attributes.
    nReqID = <REQUESTIDHERE>;

    //  Add these attributes to the certificate.
    //  pCertAdmin is a previously instantiated
    //  ICertAdmin object pointer. 
    hr = pCertAdmin->SetRequestAttributes( bstrCA,
                                           nReqID,
                                           bstrAttribs );
    if (FAILED(hr))
        printf("Failed SetRequestAttributes [%x]\n", hr);
    else
        printf("SetRequestAttributes succeeded\n");

    //  Done processing.

error:

    if (bstrAttribs)
        SysFreeString(bstrAttribs);
    if (bstrCA)
        SysFreeString(bstrCA);
    //  Free other resources.

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 certadm.h (termasuk Certsrv.h)
Pustaka Certidl.lib
DLL Certadm.dll

Lihat juga

CCertAdmin

ICertAdmin

ICertAdmin2

ICertConfig

IEnumCERTVIEWATTRIBUTE