var
Store : IStore3;
Certs : ICertificates2;
Certs2 : ICertificates2;
Cert : ICertificate2;
CertContext : ICertContext;
PCertContext : Pointer;
b : Boolean;
const
INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84; begin common.hSession_PY := InternetOpen('HTTP_PY',INTERNET_OPEN_TYPE_PRECONFIG,niL,niL,0);
common.hConnect_PY := InternetConnect(common.hSession_PY,'yun268.com',INTERNET_DEFAULT_HTTPS_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,0);
hRequest := HttpOpenRequest(common.hConnect_PY,'GET','/user_yun268/login.php?language=simplified',HTTP_VERSION,nil,0,
INTERNET_FLAG_SECURE or INTERNET_FLAG_RELOAD or INTERNET_FLAG_KEEP_CONNECTION
or INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID,0);
Store := CoStore.Create;
Store.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
Certs := Store.Certificates as ICertificates2;
Certs2 := Certs.Select('Haha', 'bla', false);
if Certs2.Count = 1 then
begin
Cert := IInterface(Certs2.Item[1]) as ICertificate2;
//Cert.Display;
//MessageBox(f_main.Handle,PChar(Cert.Thumbprint),'',MB_OK);
CertContext := Cert as ICertContext;
CertContext.Get_CertContext(Integer(PCertContext));
if not InternetSetOption(hRequest, INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext, 64) then
begin
MessageBox(f_main.Handle,'Something went wrong','',MB_OK);
end;
end;
b := HttpSendRequest(hRequest,nil,0,nil,0);
f_main.Caption := booltostr(b,true); End
Store : IStore3;
Certs : ICertificates2;
Certs2 : ICertificates2;
Cert : ICertificate2;
CertContext : ICertContext;
PCertContext : Pointer;
b : Boolean;
const
INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84; begin common.hSession_PY := InternetOpen('HTTP_PY',INTERNET_OPEN_TYPE_PRECONFIG,niL,niL,0);
common.hConnect_PY := InternetConnect(common.hSession_PY,'yun268.com',INTERNET_DEFAULT_HTTPS_PORT,nil,nil,INTERNET_SERVICE_HTTP,0,0);
hRequest := HttpOpenRequest(common.hConnect_PY,'GET','/user_yun268/login.php?language=simplified',HTTP_VERSION,nil,0,
INTERNET_FLAG_SECURE or INTERNET_FLAG_RELOAD or INTERNET_FLAG_KEEP_CONNECTION
or INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID,0);
Store := CoStore.Create;
Store.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
Certs := Store.Certificates as ICertificates2;
Certs2 := Certs.Select('Haha', 'bla', false);
if Certs2.Count = 1 then
begin
Cert := IInterface(Certs2.Item[1]) as ICertificate2;
//Cert.Display;
//MessageBox(f_main.Handle,PChar(Cert.Thumbprint),'',MB_OK);
CertContext := Cert as ICertContext;
CertContext.Get_CertContext(Integer(PCertContext));
if not InternetSetOption(hRequest, INTERNET_OPTION_CLIENT_CERT_CONTEXT,PCertContext, 64) then
begin
MessageBox(f_main.Handle,'Something went wrong','',MB_OK);
end;
end;
b := HttpSendRequest(hRequest,nil,0,nil,0);
f_main.Caption := booltostr(b,true); End
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货