我在Windows服务器中设置了CA服务器。我在C#中有一个客户端代码,该代码创建了CSR发送到服务器并从服务器下载已颁发的证书。我想知道可以使用 C#代码检索CA服务器中的证书模板列表吗?
答案 0 :(得分:1)
可以使用ICertRequest2
COM接口并调用ICertRequest2::GetCAProperty
方法来检索分配给CA服务器模板的列表。
您将必须添加一个CertCli
COM库引用(在Visual Studio中)。另外,您可以使用tlbimp.exe
库中的certcli.dll
工具创建Introp库,然后使用实现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) "Configured Certificate Templates"