(wsdbase.h) WSD_SECURITY_CERT_VALIDATION 结构

表示用于将客户端证书与 HTTPS 服务器证书匹配的条件。

请勿在代码中直接使用 WSD_SECURITY_CERT_VALIDATION_V1 ;改为使用 WSD_SECURITY_CERT_VALIDATION 可确保基于 Windows 版本的正确版本。

语法

typedef struct _WSD_SECURITY_CERT_VALIDATION {
  PCCERT_CONTEXT *certMatchArray;
  DWORD          dwCertMatchArrayCount;
  HCERTSTORE     hCertMatchStore;
  HCERTSTORE     hCertIssuerStore;
  DWORD          dwCertCheckOptions;
  LPCWSTR        pszCNGHashAlgId;
  BYTE           *pbCertHash;
  DWORD          dwCertHashSize;
} WSD_SECURITY_CERT_VALIDATION;

成员

certMatchArray

包含要与 HTTPS 服务器或客户端提供的证书匹配的 CERT_CONTEXT 结构的数组。 验证只需要一个匹配的证书。 此参数可以为 NULL。

dwCertMatchArrayCount

certMatchArray 中的证书计数。

hCertMatchStore

证书存储的句柄,该存储包含要与 HTTPS 服务器或客户端提供的证书匹配的证书。 验证只需要一个匹配的证书。 此参数可以为 NULL。

hCertIssuerStore

包含根证书的证书存储的句柄,HTTPS 服务器或客户端的证书应链接到该根证书。 只要证书链接到至少一个根证书,验证就成功。 此参数可以为 NULL。

dwCertCheckOptions

指定要忽略的证书检查的值的按位 OR 组合。

Value 含义
WSDAPI_SSL_CERT_DEFAULT_CHECKS
0x0
处理任何吊销的证书错误。
WSDAPI_SSL_CERT_IGNORE_REVOCATION
0x1
忽略吊销的证书错误。
WSDAPI_SSL_CERT_IGNORE_EXPIRY
0x2
忽略过期的证书错误。
WSDAPI_SSL_CERT_IGNORE_WRONG_USAGE
0x4
忽略证书使用错误。
WSDAPI_SSL_CERT_IGNORE_UNKNOWN_CA
0x8
忽略未知的证书颁发机构错误。
WSDAPI_SSL_CERT_IGNORE_INVALID_CN
0x10
忽略无效的公用名证书错误。

pszCNGHashAlgId

pbCertHash

dwCertHashSize

注解

此结构用于 WSD_CONFIG_PARAM 结构的 pConfigData 成员。

WSD_SECURITY_SSL_SERVER_CERT_VALIDATIONWSD_CONFIG_PARAMconfigParamType 时,此结构可用于验证 SSL 服务器提供的 SSL 服务器证书。

WSD_SECURITY_SSL_CLIENT_CERT_VALIDATIONWSD_CONFIG_PARAMconfigParamType 时,此结构可用于验证 SSL 客户端提供的 SSL 客户端证书。

WSD_SECURITY_CERT_VALIDATION 定义了 3 个证书匹配机制。 若要获取匹配项,必须至少满足一种此类机制。

如果使用面向 Windows 8 OS 的 Windows 8 SDK 生成应用程序, WSD_SECURITY_CERT_VALIDATION 解析为新结构。 但是,因此,应用程序只能在 Windows 8 计算机上运行。

如果应用程序是使用面向 Windows 7 OS 的 Windows 8 SDK 生成的, WSD_SECURITY_CERT_VALIDATION 将解析为旧结构 (WSD_SECURITY_CERT_VALIDATION_V1) 。 虽然 Windows 7 支持应用程序,但它也在 Windows 8 上,因为 Windows 8 上的 wsdapi.dll 将处理此结构的旧版本和较新版本。

已使用 Windows 7 SDK 生成的应用程序将使用此结构的旧版本。 它在 Windows 8 上运行良好,因为 Windows 8 上的 wsdapi.dll 可以处理这两个版本。

要求

   
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
标头 wsdbase.h (包括 Windows.h)