密码为

时间:2018-03-01 10:20:42

标签: c++builder

我使用了一个Web服务客户端。

我有一个带密码的证书。我可以从我的商店检索证书,我可以在InternetSetOption()中使用它。

但我不知道如何使用证书发送密码。

以下是一个例子:

LPWSTR pswzFirstCert = L"xxxxx";// Subject of the first certificate.
LPWSTR pPassword = L"yyyyyy";// Spassword
HCERTSTORE hSystemStore; // The system store handle
PCCERT_CONTEXT pDesiredCert = NULL;

hSystemStore = CertOpenStore(CERT_STORE_PROV_SYSTEM, 0, NULL, CERT_SYSTEM_STORE_CURRENT_USER,L"MY");
if(hSystemStore == NULL)
{
    ShowMessage("Not Opened the MY system store.");
    return;
}

// Get a certificate that has the string "Full Test Cert" in its subject.
if(pDesiredCert)
    CertFreeCertificateContext(pDesiredCert);

pDesiredCert=CertFindCertificateInStore(hSystemStore, MY_ENCODING_TYPE, 0, CERT_FIND_SUBJECT_STR, pswzFirstCert, NULL);
if(pDesiredCert == NULL)
{
    ShowMessage("The certificate was not found.");
    return;
}

if(hSystemStore)
    CertCloseStore(hSystemStore, CERT_CLOSE_STORE_CHECK_FLAG);

if( InternetSetOption (Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, (LPVOID)pDesiredCert, sizeof (CERT_CONTEXT) ) == FALSE )
    ShowMessage("InternetSetOption failed with error.");

if( InternetSetOption (Data, INTERNET_OPTION_PASSWORD, (LPVOID)pPassword, sizeof (pPassword) ) == FALSE )
    ShowMessage("InternetSetOption failed with error.");

if(pDesiredCert)
    CertFreeCertificateContext(pDesiredCert);

0 个答案:

没有答案