Список назначенных шаблонов CA-серверов можно получить с помощью COM-интерфейса ICertRequest2
и вызова метода ICertRequest2::GetCAProperty
.
Вам нужно будет добавить CertCli
ссылку на библиотеку COM (в Visual Studio). Кроме того, вы можете создать библиотеку introp с помощью инструмента tlbimp.exe
из библиотеки certcli.dll
, а затем использовать класс CCertRequest
, который реализует интерфейс ICertRequest
.
Чтобы получить список шаблонов сертификатов, передайте значение CR_PROP_TEMPLATES
в параметре dwPropId
. Для получения более подробной информации о вызове метода GetCAProperty
вы можете обратиться к описанию ICertRequestD2::GetCAProperty
DCOM, которое является частью спецификации протокола MS-WCCE.
Метод возвращает строковое значение в следующем формате: TemplateName1\nTemplateOID1\nTemplateName2\nTemplateOID2\...
. Вы можете разбить эту строку с символом \n
на массив строк, где каждый четный элемент (с учетом индекса, начинающегося с нуля) представляет отображаемое имя шаблона (не общее имя или атрибут cn
), а нечетный элемент представляет OID шаблона. Подробнее о выводе: [MS-WCCE] §3.2.2.6.3.1.1 PropID = 0x0000001D (CR_PROP_TEMPLATES) «Настроенные шаблоны сертификатов»