Hola.
Estoy usando Delphi 2007. Para acceder con certificado (SSL) utiizo la libreria capicom.ddl con el siguiente código en el Evento HTTPRIOLoginHTTPWebNode1BeforePost del componente THTTPRIO.
Código Delphi
[-]
procedure TfrAsuLexNet.HTTPRIOLoginHTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; Data: Pointer);
var
Store: IStore;
Certs: iCertificates;
Cert: ICertificate2;
CertContext: ICertContext;
PCertContext: PCCERT_CONTEXT;
begin
Store := CoStore.Create;
Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
Certs := Store.Certificates as ICertificates2;
if Certs.Count > 0 then begin
Cert := IInterface(Certs.Item[IndexCertif]) as ICertificate2;
CertContext := Cert as ICertContext;
CertContext.Get_CertContext(Integer(PCertContext));
if InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, Sizeof(CERT_CONTEXT)) = False then
ShowMessage( 'No se ha podido adjuntar el certificado digital.');
end;
Para acceder al Webservice envío un XML con el siguiente código
Código Delphi
[-]
try
(HTTPRIOLogin as LoginPortType).Login('');
except
on E: Exception do begin
Mensaje(E.Message);
Result := False;
end;
end;
El problema que tengo es que en Windows XP funciona a la perfección, pero no así en Windows 7 que da el siguiente error :
" - URL:
https://lexnet3pruebas.justicia.es/services/Login - SOAPAction:"""
Adolfo Bonis
Barcelona