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

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 15-12-2020
didou didou is offline
Miembro
 
Registrado: may 2017
Posts: 59
Poder: 8
didou Va por buen camino
Problemas con HTTPRIOBeforePost y delphi 10.4

Buenas tardes, me he actualizado a Delphi Sydney (10.4) y resulta que el evento HTTPRIOBeforePost ha cambiado,
antes los argumentos eran (CONST HTTPReqResp: THTTPReqResp; Data: Pointer) y ahora (const HTTPReqResp: THTTPReqResp; Client: THTTPClient)

la función InternetSetOption que se usa dentro del evento antes se le pasaba como parametros InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, nil, Sizeof(CERT_CONTEXT))
y ahora InternetSetOption(Client, INTERNET_OPTION_CLIENT_CERT_CONTEXT, nil, Sizeof(CERT_CONTEXT))
y devuelve siempre false o sea "Error, Internet SSL certificate"

Mi fuente con lo anterior a delphi 10.4 comentado:

Código Delphi [-]
procedure TGestionSII_1_1EnviarDatCli.HTTPRIOBeforePost(const HTTPReqResp: THTTPReqResp; Client: THTTPClient);//Data: Pointer);
var
  Store : IStore;
  Certs : ICertificates;
  Cert : ICertificate2;
  CertContext : ICertContext;
  PCertContext : PCCERT_CONTEXT;
  vNombreCertificado: OleVariant;
const
  INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
begin
  vNombreCertificado:= HdParam(parSfnCertificadoNombreSII).AsString;
  Store := CoStore.Create;
  Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED );
  Certs:=Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, vNombreCertificado, False ); { Buscar certificado por nombre }
  if Certs.Count > 0 then
  begin
    Cert := IInterface(Certs.Item[1]) as ICertificate2;
    CertContext := Cert as ICertContext;
    CertContext.Get_CertContext(Integer(PCertContext));
//    if not InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, Sizeof(CERT_CONTEXT)) then
    if not InternetSetOption(Client, INTERNET_OPTION_CLIENT_CERT_CONTEXT, PCertContext, Sizeof(CERT_CONTEXT)) then
      BoxMsg('Error, Internet SSL certificate');
  end else
    BoxMsg('Error, NO HAY CERTIFICADO');
end;
Alguien me puede ayudar por favor, gracias.

Última edición por Casimiro Notevi fecha: 15-12-2020 a las 22:26:49.
Responder Con Cita
 



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
TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco keys Internet 4170 Hace 2 Semanas 17:29:05
AEAT envio de datos vía Webservice problemas con WSDL CelsoO Internet 11 09-10-2019 20:03:41
webService Soap de la Administración Digital Española notific@ apicito Internet 3 31-01-2017 11:25:28
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 20:10:29
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 15:49:20


La franja horaria es GMT +2. Ahora son las 08:00:27.


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