Bagikan melalui


Metode ICertConfig::GetConfig (certcli.h)

Metode GetConfig mengambil string konfigurasi untuk server Layanan Sertifikat . Metode ini pertama kali didefinisikan dalam antarmuka ICertConfig .

String konfigurasi adalah nama server dan nama otoritas sertifikasi yang dipisahkan oleh garis miring terbalik (\); misalnya: ServerName\CAName. String konfigurasi ini dapat digunakan untuk merujuk secara tidak ambigu ke server Layanan Sertifikat tertentu. Untuk informasi selengkapnya, lihat Keterangan.

Sintaks

HRESULT GetConfig(
  [in]  LONG Flags,
  [out] BSTR *pstrOut
);

Parameter

[in] Flags

Nilai yang menentukan otoritas sertifikasi untuk digunakan. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
CC_DEFAULTCONFIG
0x00000000
Mengambil otoritas sertifikasi default.
CC_FIRSTCONFIG
0x00000002
Mengembalikan otoritas sertifikasi pertama.
CC_LOCALACTIVECONFIG
0x00000004
Mengambil otoritas sertifikasi lokal jika sedang berjalan.
CC_LOCALCONFIG
0x00000003
Mengambil otoritas sertifikasi lokal.
CC_UIPICKCONFIG
0x00000001
Menampilkan antarmuka pengguna yang memungkinkan pengguna memilih otoritas sertifikasi.
CC_UIPICKCONFIGSKIPLOCALCA
0x00000005
Menampilkan antarmuka pengguna yang memungkinkan pengguna memilih otoritas sertifikasi. UI mengecualikan otoritas sertifikasi lokal apa pun. Pengecualian ini berguna selama perpanjangan sertifikat otoritas sertifikasi bawahan ketika permintaan sertifikat otoritas sertifikasi bawahan diajukan ke otoritas sertifikasi selain otoritas sertifikasi saat ini.

[out] pstrOut

Pointer ke BSTR yang berisi konfigurasi. Setelah Anda selesai menggunakan konfigurasi, panggil fungsi SysFreeString untuk membebaskan pbstrOut.

Menampilkan nilai

C++

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.

VB

Nilai yang dikembalikan adalah string yang berisi konfigurasi.

Keterangan

Bagian nama otoritas sertifikasi (CA) dari string konfigurasi yang dikembalikan fungsi ini adalah teks yang tepat yang dimasukkan selama proses penyiapan Layanan Sertifikat. Perhatikan bahwa teks ini mungkin berbeda dari bentuk nama CA yang ditemukan dalam nama file (seperti untuk daftar pencabutan sertifikat) atau dalam kunci registri. Ini karena nama file dan kunci registri menggunakan versi sanitasi dari nama CA.

Proses sanitasi nama CA diperlukan untuk menghapus karakter yang ilegal untuk nama file, nama kunci registri, atau nilai nama khusus, atau ilegal karena alasan khusus untuk Layanan Sertifikat. Dalam proses sanitasi, setiap karakter ilegal dalam nama umum dikonversi menjadi representasi lima karakter dalam format !xxxx, di mana ! digunakan sebagai karakter escape dan xxxx mewakili empat digit heksadesimal yang secara unik mengidentifikasi karakter yang akan dikonversi.

Misalnya, tanda angka (#) tidak diizinkan dalam nama khusus di Direktori Aktif. Jika nama CA yang dimasukkan selama penyiapan adalah #YourName, nama CA yang dibersihkan akan menjadi !0023YourName.

Karakter berikut, jika dimasukkan untuk nama umum CA selama penyiapan, dikonversi ke !format xxxx selama proses sanitasi. Daftar ini dapat berubah.

Nama Karakter Nilai dalam format !xxxx
Ampersand & !0026
Apostrof ' !0027
Asterisk * !002a
Garis miring terbalik \ !005c
Kurung kurawal kiri { !007b
Kurung kurawal kanan } !007d
Kurung siku kiri [ !005b
Kurung siku kanan ] !005d
Tanda Kurus ^ !005e
Titik dua : !003a
Koma , !002c
Tanda sama dengan = !003d
Tanda seru ! !0021
Aksen makam ` !0060
Lebih besar dari tanda > !003e
Kurang dari tanda < !003c
Tanda nomor # !0023
Membuka tanda kurung ( !0028
Kurung tutup ) !0029
Persen % !0025
Pipa | !007c
Tanda plus + !002b
Tanda tanya ? !003f
Tanda kutip " !0022
Titik Koma ; !003b
Tanda garis miring / !002f
 

Setiap karakter noncetak dan semua karakter Unicode yang bukan tujuh bit juga dikonversi ke !format xxxx.

Nama pendek yang dibersihkan dihasilkan ketika nama yang dibersihkan terlalu panjang untuk layanan direktori 64 karakter dengan nama khusus relatif (RDN). Nama pendek yang dibersihkan terdiri dari nama sanitasi yang dipotong dan ditambahkan dengan hash dengan nama lengkap yang dibersihkan. Nama pendek yang dibersihkan mencadangkan beberapa dari 64 karakter untuk berisi akhiran daftar pencabutan sertifikat (CRL), seperti (123).

Bagian nama otoritas sertifikasi dari string konfigurasi yang dikembalikan oleh metode ini adalah teks asli yang dimasukkan selama penyiapan. Perhatikan bahwa metode Layanan Sertifikat yang memerlukan nama otoritas sertifikasi sebagai parameter menerima nama otoritas sertifikasi yang awalnya dimasukkan. Misalnya, untuk nama # otoritas sertifikasi YourName,
Metode ICertView2::OpenConnection menerima #YourName sebagai bagian otoritas sertifikasi parameter.

Contoh

Contoh berikut menunjukkan cara menggunakan metode ini untuk mengambil string konfigurasi otoritas sertifikasi default.


    ICertConfig2 * pConfig = NULL;
    BSTR  bstrConfig = NULL; //Contains CA configuration name
    HRESULT    hr;

    hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
    if (FAILED(hr))
    {
        printf("Failed CoInitializeEx - [%x]\n", hr);
        goto error;
    }

    // Create an instance of the CertConfig object.
    hr = CoCreateInstance( CLSID_CCertConfig,
                           NULL,
                           CLSCTX_INPROC_SERVER,
                           IID_ICertConfig2,
                           (void **)&pConfig);
    if (FAILED(hr))
    {
        printf("Failed CoCreateInstance - pConfig [%x]\n", hr);
        goto error;
    }

    // Retrieve the default CA configuration string.
    hr = pConfig->GetConfig(CC_DEFAULTCONFIG, &bstrConfig);
    if (FAILED(hr))
    {
        printf("Failed GetConfig - [%x]\n", hr);
        goto error;
    }
    else
        printf("GetConfig returned: %ws\n", bstrConfig );

error:

    // Done processing.
    if (pConfig)
        pConfig->Release();

    if (bstrConfig)
        SysFreeString(bstrConfig);

    CoUninitialize();

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

Lihat juga

CCertConfig

ICertConfig

ICertView2::OpenConnection