Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-11-2011
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 21
adebonis Va por buen camino
Acceso a una WebService con SSL

Buenos días.

Debo acceder a una Webservice con SSL y tengo un problema en el momento en el que envío una petición, pues me da el siguiente error:

"raised exception class ESOAPHTTPException with message "Error en el soporte de canal seguro - URL :htpps://lexnetpruebas.justicia.es"

En el componente THTTPRIO tengo puesto el siguiente codigo en el eveto onBeforePost del HTTPWebNode:

Código Delphi [-]
procedure TForm1.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp;
  Data: Pointer);
var
  Store: IStore;
  Certs: iCertificates;
  Cert: ICertificate2;
  CertContext: ICertContext;
  PCertContext: PCCERT_CONTEXT;
  V: OleVariant;
  i: Integer;
begin
  Store := CoStore.Create;
  //Se repleEnvn todos los certificados
  Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY',CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
  //Se busca por el Hash thumbprint
  V := 'DESCRIPCION CERTIFICADO';

  // Busco el certificado indicado
  Certs := Store.Certificates as ICertificates2;
  lsCertificados.Items.Clear;
  if Certs.Count > 0 then begin
    for i := 1 to Certs.Count do begin
      // Captura el contexto del certificado
      Cert := IInterface(Certs.Item[i]) as ICertificate2;
      CertContext := Cert as ICertContext;
      CertContext.Get_CertContext(Integer(PCertContext));
      lsCertificados.Items.Add(Cert.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME));
      if (Cert.GetInfo(CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME) = V) then begin
        // Pone el certificado para la comunicación SSL
        if InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, Sizeof(CERT_CONTEXT)) = False then
          ShowMessage( 'No se ha podido adjuntar el certificado digital para'+CHR(13)+CHR(10)+V );
      end;
    end;
    lsCertificados.Update;
  end;
end;

Al ejecutar este evento no da ningún error, pero sí al enviar la petición de una servicio de la Web.

Utilizo Delphi 2007 y Windows 7

Si alguien tiene experiencia en este tema se lo agradecería.

Gracias.
Adolfo Bonis
Barcelona
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
webservice con Sesion comba Internet 6 11-12-2020 12:04:18
WebService y parametros AdrianD JAVA 4 05-09-2010 14:41:41
ProcessMessage en un WebService nicohug Internet 12 24-10-2005 22:36:12
WebService y D4 Nose Internet 1 02-08-2005 22:18:23
WebService en Delphi Rafa Internet 7 10-06-2004 09:30:06


La franja horaria es GMT +2. Ahora son las 17:56:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi