ICertAdmin::IsValidCertificate 方法 (certadm.h)
IsValidCertificate方法根据证书颁发机构 (CA) 密钥验证证书,并检查证书是否已吊销。 此方法首先在 ICertAdmin 接口中定义。
语法
HRESULT IsValidCertificate(
[in] const BSTR strConfig,
[in] const BSTR strSerialNumber,
[out, retval] LONG *pDisposition
);
参数
[in] strConfig
表示 CA 的有效配置字符串,格式为 COMPUTERNAME\CANAME,其中 COMPUTERNAME 是证书服务服务器的网络名称,CANAME 是证书颁发机构的公用名称,如证书服务设置期间输入。 有关配置字符串名称的信息,请参阅 ICertConfig。
重要提示 更改配置字符串时,IsValidCertificate 不会清除内部缓存。 更改 CA 的配置字符串时,必须实例化新的 ICertAdmin 对象,并使用新的配置字符串再次调用此方法。
[in] strSerialNumber
指定用于标识要评审的证书的序列号。 字符串必须将序列号指定为十六进制数字的偶数。 如有必要,可以将零作为数字前缀,以生成偶数位数。 不能使用一个以上的前导零。
[out, retval] pDisposition
指向接收处置值的 LONG 的指针。
返回值
C++
如果方法成功,并且 pDisposition 参数设置为以下值之一,则该方法返回S_OK。如果方法失败,它将返回一个 指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
VB
返回值指定证书的处置。 此值是以下值之一。 (这些值在 Certadm.h.) 中定义返回代码 | 说明 |
---|---|
|
调用未完成。 |
|
调用失败。 |
|
证书已吊销。 |
|
证书仍然有效。 |
|
从未颁发过证书。 |
|
证书处于挂起状态。 |
注解
此方法仅确定证书是否已颁发且当前未吊销;它不检查当前时间和日期在证书的有效期限内, (NotBefore 和 NotAfter 证书属性) 。 使用此方法的应用程序还负责检查证书过期时间。
管理任务使用 DCOM。 调用 Certadm.h 早期版本中定义的此接口方法的代码将在基于 Windows 的服务器上运行,前提是客户端和服务器都运行相同的 Windows 操作系统。
示例
BSTR bstrCA = NULL; // Machine\CAName
BSTR bstrSerial = NULL; // Contains the certificate
// serial number
long nDisp; // Contains the certificate
// disposition
HRESULT hr;
bstrCA = SysAllocString(L"<COMPUTERNAMEHERE>\\<CANAMEHERE>");
bstrSerial = SysAllocString(L"<SERIALNUMBERHERE>");
if (NULL == bstrCA || NULL == bstrSerial)
{
printf("Memory allocation failed\n");
goto error;
}
// Determine whether the certificate is valid.
// pCertAdmin is a previously instantiated ICertAdmin
// object pointer.
hr = pCertAdmin->IsValidCertificate(bstrCA, bstrSerial, &nDisp);
if (FAILED(hr))
{
printf("Failed IsValidCertificate [%x]\n", hr);
goto error;
}
// Use nDisp as needed.
// Done processing.
error:
// Free BSTR values.
if (NULL != bstrCA)
SysFreeString(bstrCA);
if (NULL != bstrSerial)
SysFreeString(bstrSerial);
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | certadm.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certadm.dll |