Antarmuka ICertPolicy (certpol.h)

Antarmuka ICertPolicy menyediakan komunikasi antara mesin server Layanan Sertifikat dan modul kebijakan.

Catatan Modul kebijakan dapat berkomunikasi dengan mesin server Layanan Sertifikat dengan menggunakan antarmuka ICertServerPolicy .
 
Mesin server Layanan Sertifikat memanggil metode ICertPolicy untuk melakukan tugas-tugas berikut:
  • Menginisialisasi modul kebijakan.
  • Beri tahu modul kebijakan bahwa permintaan baru telah memasuki sistem. Modul kebijakan kemudian dapat menggunakan metode antarmuka ICertServerPolicy untuk menunjukkan bahwa permintaan tersebut baik dan harus dikeluarkan, buruk dan harus ditolak, atau harus ditahan untuk pertimbangan nanti.
  • Ambil deskripsi modul kebijakan dan fungsionalitasnya.
  • Beri tahu modul kebijakan bahwa server Layanan Sertifikat sedang dihentikan.

Modul kebijakan harus menerapkan ICertPolicy dan ICertManageModule.

ICertPolicy didefinisikan dalam Certpol.h. Namun, saat Anda membuat program, gunakan Certsrv.h sebagai file sertakan.

Antarmuka Layanan Sertifikat mendukung model rangkaian apartemen dan utas bebas. Untuk throughput yang lebih baik, disarankan untuk threading gratis.

Warisan

Antarmuka ICertPolicy mewarisi dari antarmuka IDispatch . ICertPolicy juga memiliki jenis anggota ini:

Metode

Antarmuka ICertPolicy memiliki metode ini.

 
ICertPolicy::GetDescription

Mengembalikan deskripsi modul kebijakan yang dapat dibaca manusia dan fungsinya.
ICertPolicy::Initialize

Dipanggil oleh mesin server untuk memungkinkan modul kebijakan melakukan tugas inisialisasi.
ICertPolicy::ShutDown

Dipanggil oleh mesin server sebelum server dihentikan.
ICertPolicy::VerifyRequest

Memberi tahu modul kebijakan bahwa permintaan baru telah memasuki sistem.

Keterangan

Hanya otoritas sertifikasi yang berdiri sendiri yang harus menggunakan kebijakan kustom atau modul keluar; saat menjalankan otoritas sertifikasi perusahaan, penggunaan kebijakan yang disediakan Microsoft dan modul keluar sangat disarankan.

Implementer ICertPolicy juga harus menerapkan ICertManageModule. Selain itu, ProgID untuk kelas yang menerapkan ICertPolicy harus sesuai dengan konvensi penamaan. Secara khusus, ProgID harus dalam bentuk:

"MyApp. Kebijakan"

Di mana MyApp adalah penentu yang mengidentifikasi aplikasi. Misalnya, di C++, kode berikut dapat digunakan dalam makro DECLARE_REGISTRY kelas (CMyCertPolicyModule) yang mengimplementasikan ICertPolicy.

DECLARE_REGISTRY(
    CMyCertPolicyModule,
    L"MyCode.Policy.1",
    L"MyCode.Policy",
    IDS_CERTPOLICYMODULE_DESC,
    THREADFLAGS_BOTH);

Untuk contoh sebelumnya, nilai IDS_CERTPOLICYMODULE_DESC adalah pengidentifikasi khusus aplikasi dalam file sumber daya (.rc) untuk string yang menjelaskan kelas .

Konstanta string yang ditentukan dalam Certmod.h dapat digunakan untuk menyederhanakan mengikuti konvensi penamaan.

Terus-menerus Nilai
wszCERTPOLICYMODULE_POSTFIX TEXT(". Kebijakan")
 

Tidak lebih dari satu modul kebijakan Visual Basic Scripting Edition dapat didaftarkan di server Layanan Sertifikat pada satu waktu. Jika lebih dari satu modul kebijakan tersebut terdaftar di server Layanan Sertifikat, snap-in MMC Otoritas Sertifikasi, aplikasi Layanan Sertifikat, atau program baris perintah certutil dapat menghasilkan kesalahan. Perhatikan bahwa lingkungan pengembangan Visual Basic Scripting Edition secara otomatis mendaftarkan DLL saat berhasil dibuat. Akibatnya, Anda mungkin mengalami situasi ini ketika satu modul kebijakan Visual Basic Scripting Edition sudah terdaftar dan modul kebijakan Visual Basic Scripting Edition lainnya dibuat. Untuk menghindari situasi ini, Anda harus membatalkan pendaftaran salah satu modul kebijakan Visual Basic Scripting Edition, dengan menggunakan regsvr32 /u instruksi baris perintah FileName.dll, di mana FileName.dll adalah nama modul kebijakan Visual Basic Scripting Edition yang tidak ingin Anda aktifkan.

Implementer ICertPolicy di Visual Basic Scripting Edition harus memberi nama proyek mereka dalam bentuk:

"MyApp"

Di mana MyApp adalah penentu yang mengidentifikasi aplikasi; selanjutnya, kelas yang menerapkan ICertPolicy harus diberi nama "Policy".

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 certpol.h (termasuk Certsrv.h)