ICspStatus::get_Ordinal 方法 (certenroll.h)

Ordinal 属性指定或检索 ICspStatus 对象在 ICspStatuses 集合中的位置。

此属性是可读写的。

语法

HRESULT get_Ordinal(
  LONG *pValue
);

参数

pValue

返回值

备注

若要按序号循环访问 ICspStatuses 集合,请调用 ItemByOrdinal 属性。 每次枚举集合时,集合中 ICspStatus 对象的序号顺序可能会有所不同,原因有多种,包括但不限于:

  • 证书请求模板设置
  • 加密提供程序的属性值
  • 私钥属性值

例如,假设选择用于创建证书请求的版本 2 模板指定证书只能用于签名 (pKIDefaultKeySpec 模板属性XCN_AT_SIGNATURE) 且默认提供程序为 Microsoft 增强型 RSA 和 AES 加密提供程序。 请注意,模板将证书限制为签名,即使提供程序同时支持加密和签名算法。 也就是说,提供程序上的 KeySpec 属性是XCN_AT_KEYEXCHANGE和XCN_AT_SIGNATURE常量按位组合,但 pKIDefaultKeySpec 模板属性仅支持XCN_AT_SIGNATURE。

集合中的 ICspStatus 对象将按以下方式排序:

  • 在此提供程序枚举的 ICspStatus 对象中,与签名算法 (XCN_AT_SIGNATURE) 关联的对象首先进行排序, (较低的序号值) 并启用其 DisplaySelected 属性。
    注意 如果已XCN_AT_KEYEXCHANGE pKIDefaultKeySpec 模板属性,则会先对加密算法进行排序。
     
  • 在此提供程序枚举的 ICspStatus 对象中,与加密算法 (XCN_AT_KEYEXCHANGE) 关联的对象 (更高序号值) 排序,并且不启用其 DisplaySelected 属性。
  • 对于支持非对称签名算法 (XCN_AT_SIGNATURE) 但未与指定提供程序关联的所有其他已安装的 CryptoAPI 提供程序,启用 Display 属性且未启用 Selected 属性。
  • 对于支持非对称加密算法 (XCN_AT_KEYEXCHANGE) 的所有其他已安装的 CryptoAPI 提供程序,不启用 DisplaySelected 属性。
  • 对于所有已安装的加密 API:下一代 (CNG) 提供程序,不启用 “显示 ”和 “选定” 属性。

对于另一个示例,假设版本 3 模板指定了一个特定的 CNG 提供程序和算法。 该提供程序/算法对 (ICspStatus 对象) 先进行排序,启用显示并选中。 该提供程序支持的所有其他算法稍后会进行排序,不启用显示,并且未选中。 支持指定算法的所有其他提供程序稍后仍会进行排序,启用显示,但未选中。 所有剩余的提供程序/算法对都不会启用显示,也不会选择。

注意 CNG 提供程序不支持 KeySpec 预期使用概念。 它们返回此属性值的XCN_AT_NONE。

 

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h
DLL CertEnroll.dll

另请参阅

ICspStatus

ICspStatuses