IAlternativeName::InitializeFromRawData 方法 (certenroll.h)

InitializeFromRawData 方法从数字签名算法 (DSA) GUID、X.500 目录名称或 Internet 协议 (IP) 地址初始化对象,该地址包含在 可辨别编码规则 (DER) 编码字节数组中。

语法

HRESULT InitializeFromRawData(
  [in] AlternativeNameType Type,
  [in] EncodingType        Encoding,
  [in] BSTR                strRawData
);

参数

[in] Type

一个 AlternativeNameType 枚举值,该值标识由输入字符串表示的名称类型。 这必须是以下值之一。

含义
XCN_CERT_ALT_NAME_DIRECTORY_NAME
该名称是 X.500 目录名称。
XCN_CERT_ALT_NAME_IP_ADDRESS
该名称是 IP 地址。
XCN_CERT_ALT_NAME_GUID
名称为 GUID。

[in] Encoding

一个 EncodingType 枚举值,该值标识应用于 strRawData 参数的 Unicode 编码的类型。

[in] strRawData

包含 DER 编码数据的 BSTR 变量。

返回值

如果函数成功,该函数将返回 S_OK

如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码 说明
HRESULT_FROM_WIN32 (ERROR_ALREADY_INITIALIZED)
对象已初始化。

注解

原始数据是使用 可辨别编码规则 ( DER) 编码的字节数组。 必须将字节数组指定为 Unicode 编码的字符串。

如果使用此方法指定 DSA GUID (XCN_CERT_ALT_NAME_GUID) ,则 GUID 与 XCN_OID_NTDS_REPLICATION (1.3.6.1.4.1.1.311.25.1) 对象标识符 关联 (OID) ,并将其编码为八进制字符串 (字节数组) 。 可以通过调用 ObjectId 属性来检索 OID。 可以调用 RawData 属性来检索编码的字节数组。

如果使用此方法指定以下任何名称类型,该方法将返回 E_INVALIDARG

说明
XCN_CERT_ALT_NAME_UNKNOWN 未标识名称类型。
XCN_CERT_ALT_NAME_RFC822_NAME 名称是电子邮件地址。
XCN_CERT_ALT_NAME_DNS_NAME 该名称是 DNS 名称。
XCN_CERT_ALT_NAME_URL 名称为 URL。
XCN_CERT_ALT_NAME_REGISTERED_ID 该名称是已注册的 OID。
XCN_CERT_ALT_NAME_USER_PRINCIPLE_NAME 该名称是 UPN) (用户主体名称
XCN_CERT_ALT_NAME_OTHER_NAME 名称由 OID 和字节数组组成。
 

可以使用 InitializeFromOtherName 方法指定 OID 和相应的名称字符串,也可以使用 InitializeFromString 方法指定电子邮件地址、DNS 名称、URL、已注册的 OID 或 用户主体名称 (UPN) 。

要求

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

另请参阅

IAlternativeName