ICertRequest3::SetCredential 方法 (certcli.h)
SetCredential 方法设置用于联系证书注册 Web 服务的凭据。
语法
HRESULT SetCredential(
[in] LONG hWnd,
[in] X509EnrollmentAuthFlags AuthType,
[in] BSTR strCredential,
[in] BSTR strPassword
);
参数
[in] hWnd
父窗口的句柄。
必须设置提供 UI 的 hWnd 参数才能获取凭据。
对于基于证书的授权,如果需要 UI 提示来获取凭据,例如,如果凭据位于智能卡并且需要固定提示,则使用句柄。
使用 Kerberos、匿名或用户名和密码身份验证时,将忽略此参数。
[in] AuthType
指定身份验证类型的 X509EnrollmentAuthFlags 枚举的值。
值 | 含义 |
---|---|
|
匿名身份验证。
将 strCredential 和 strPassword 参数设置为 NULL 或空字符串。 |
|
本地计算机上安装的客户端身份验证证书。 证书包含与私钥关联的公钥, (证书) 不包含。 服务器使用该证书来验证客户端的身份。
strCredential 参数包含要传递给证书注册 Web 服务以对调用方进行身份验证的证书的二进制 20 字节 SHA-1 哈希。 将 strPassword 参数设置为 NULL 或空字符串。 strCredential 参数必须引用安装在相关个人证书存储中的证书,并且它必须具有调用方可访问的关联私钥。 |
|
Kerberos 身份验证。
将 strCredential 和 strPassword 参数设置为 NULL 或空字符串。 |
|
纯文本用户名和密码身份验证。 用户名和密码存储在客户端的凭据保管库中时,会对其进行加密。
strCredential 和 strPassword 参数包含证书注册 Web 服务支持的用于对调用方进行身份验证的用户名字符串和纯文本密码。 由于注册服务连接始终使用 安全套接字层协议 (SSL) ,因此通过网络发送密码时会加密。 |
[in] strCredential
包含凭据的字符串。
[in] strPassword
包含密码的字符串。
返回值
返回代码 | 说明 |
---|---|
|
AuthType 参数必须为 X509AuthKerberos。 |
注解
在调用 ICertRequest2::Submit 方法之前,必须调用 SetCredential 方法。
strCredential 和 strPassword 参数根据 AuthType 参数中指定的值而更改,如下表所示。
AuthType 参数 | strCredential 参数 | strPassword 参数 |
---|---|---|
X509AuthAnonymous | NULL | NULL |
X509AuthCertificate | 证书的 20 字节 SHA-1 哈希 (指纹) | NULL |
X509AuthKerberos | NULL | NULL |
X509AuthUsername | 证书注册 Web 服务识别的纯文本用户名 | 与用户名关联的纯文本密码 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | certcli.h (包括 Certsrv.h) |
Library | Certidl.lib |
DLL | Certcli.dll |