IWinHttpRequest::SetClientCertificate 方法

SetClientCertificate 方法选择要发送到安全超文本传输协议 (HTTPS) 服务器的客户端证书。

语法

HRESULT SetClientCertificate(
  [in] BSTR ClientCertificate
);

参数

ClientCertificate [in]

指定客户端证书的位置、 证书存储和使用者。

返回值

返回值在成功 时S_OK ,否则返回值为错误值。

备注

ClientCertificate 参数中指定的字符串由证书位置、证书存储和由反斜杠分隔的使用者名称组成。 有关证书字符串组件的详细信息,请参阅 客户端证书

证书存储名称和位置是可选的。 但是,如果指定证书存储,则还必须指定该证书存储区的位置。 默认位置为 CURRENT_USER,默认证书存储为“MY”。 空白使用者指示应使用证书存储中的第一个证书。

调用 SetClientCertificate 以选择证书,然后再调用 Send 发送请求。

Microsoft Windows HTTP Services (WinHTTP) 不会向请求证书进行身份验证的代理服务器提供客户端证书。

注意

对于 Windows XP 和 Windows 2000,请参阅 WinHTTP 起始页的 运行时要求 部分。

示例

以下脚本示例演示如何选择要随请求发送的客户端证书。 主题为“My Middle-Tier Certificate”的证书是从注册表中 HKEY_LOCAL_MACHINE下的“个人”证书存储中选择的。 由于此代码示例特定于使用反斜杠作为转义字符的 Microsoft JScript,因此需要两个相邻的反斜杠来分隔证书字符串的组件。

// Instantiate a WinHttpRequest object.
var HttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
    
// Open an HTTP connection.
HttpReq.Open("GET", "https://www.fabrikam.com/", false);
    
// Select a client certificate.
HttpReq.SetClientCertificate(
            "LOCAL_MACHINE\\Personal\\My Middle-Tier Certificate");

// Send the HTTP Request.
HttpReq.Send();

要求

要求
最低受支持的客户端
Windows XP、Windows 2000 Professional SP3 [仅限桌面应用]
最低受支持的服务器
Windows Server 2003、Windows 2000 Server SP3 [仅限桌面应用]
可再发行组件
Windows XP 和 Windows 2000 上的 WinHTTP 5.0 和 Internet Explorer 5.01 或更高版本。
IDL
HttpRequest.idl

Winhttp.lib
DLL
Winhttp.dll

另请参阅

IWinHttpRequest

WinHttpRequest

WinHTTP 中的 SSL

WinHTTP 版本