Ver Mensaje Individual
  #626  
Antiguo 12-04-2017
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Reputación: 20
elguille Va por buen camino
Cita:
Empezado por keys Ver Mensaje
Hola a Todos. Ahora voy yo con una duda o problema por si le ha pasado a alguien.

Estomos desarrollando en delphi y a al hora de presentar mostramos todos los certificados disponibles en el equipo. En el equipo teníamos tres certificados, los cuales nos salian a la hora de obtenerlos. Uno de ellos estaba caducado y lo eliminamos del sistema, es decir ahora solo hay dos. Pero a la hora de obtener en delphi cuantos certificados hay me siguen saliendo tres, los dos que me quedan y uno en blanco.

A alguien le ha pasado esto o sabe por que es. La lista de certificados la estamos obteniendo de la siguiente forma.

Código Delphi [-]
   

function ObtenerCertificados(aList:TStringList):integer;
var
  hStore: HCERTSTORE;
  PrevContext, CurContext: PCERT_CONTEXT;
  cbSize: DWORD;
  sNombre: String;
begin
  aList.Clear;
  Result := 0;
  hStore := CertOpenSystemStore(0, PChar('MY'));
  if hStore <> nil then begin
     PrevContext := nil;
     CurContext := CertEnumCertificatesInStore(hStore, PrevContext);
     while CurContext <> nil do begin
       sNombre := '';
       cbSize := CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, nil, 0);
       if cbSize > 0 then
       begin
          SetLength(sNombre, cbSize-1);
          CertGetNameString(CurContext, CERT_NAME_SIMPLE_DISPLAY_TYPE, 0, nil, PChar(sNombre), cbSize);
          aList.Add(sNombre);
       end;
       PrevContext := CurContext;
       CurContext  := CertEnumCertificatesInStore(hStore, PrevContext);
     end;
  end;
  result:=aList.count;
end;

Un Saludo.
Para eliminar del sistema certificados caducados
-Pincha en Inicio/Ejecutar.
-Escribe: mmc y pulse "Aceptar".
-En la consola pulse en el menú Archivo o Consola (depende del sistema operativo). Selecciona "agregar o quitar complemento".
-En la ventana que aparece pulsa el botón "Agregar". Pinche en "certificados".
Agregar.
-Selecciona "Mi cuenta de usuario" en caso de no estar marcada, ya que suele estar marcada por defecto.
-Finalizar.
-Pulsa "cerrar" en la ventana que tiene delante y "aceptar" en la que aparecerá a continuación. Volverá a la ventana de Raíz de Consola.
-Podrás comprobar que ahora en la parte izquierda de la ventana tienes una nueva opción que se llama "Certificados" y que se puede desplegar.
-Despliega la carpeta "Certificados" y entre en la que dice "Personal". En la parte derecha aparecerán tantos certificados como tenga instalados en el navegador, incluidos los que no vea o tenga caducados.
-Pulsa encima del que desee eliminar con el botón derecho del ratón y selecciona "Eliminar".
Responder Con Cita