我在JScript / VBA中使用MSXML2.ServerXMLHTTP,并且想要设置客户端证书路径。在WinHTTP.WinHTTPRequest中,我可以使用选项“ .setClientCertificate”,但是MSXML2.ServerXMLHTTP中似乎不存在。
我可以使用任何参数来达到相同的效果吗?我需要使用MSXML2.ServerXMLHTTP,因为我正在异步使用它,而WinHTTP不支持它。
示例代码JScript / VBA:
var H = new ActiveXObject('MSXML2.ServerXMLHTTP.6.0')
H.open('GET', 'https://stackoverflow.com/', true)
H.setRequestHeader('Cookie', 'yesplease')
H.setClientCertificate('CURRENT_USER\MY\USERNAME') <-- this line doesn't work
H.send
因此上述setClientCertificate行上的错误。但是,下面的方法可以工作(但是如上所述,我不能使用WinHTTP)
var H = new ActiveXObject('WinHTTP.WinHTTPRequest.5.1')
H.open('GET', 'https://stackoverflow.com/', true)
H.setRequestHeader('Cookie', 'yesplease')
H.setClientCertificate('CURRENT_USER\MY\USERNAME') <-- this line DOES work
H.send
有没有一种方法可以将setClientCertificate与MSXML2.ServerHTTP对象一起使用?
答案 0 :(得分:1)
你想要
.setOption 3, "\value\......."
在这里详细说明:
https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms763811(v%3Dvs.85) under `SXH_OPTION_SELECT_CLIENT_SSL_CERT`
语法
oServerXMLHTTPRequest.setOption option, value
根据您的代码
H.setOption 3, "CURRENT_USER\\MY\\USERNAME"
对于常数
SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3 '&H3