Boa tarde a todos,
Aqui na empresa, precisamos converter nosso aplicativo servidor para um serviço do windows mas esbarramos em um problema: O ACBr não encontra o certificado digital, pois ele procura no repositório do usuário logado e não no repositório da máquina. Depois de muito pesquisar, encontramos a referencia abaixo que resolveu o problema, apenas alterando as chamadas ao método Store.Open conforme abaixo:
function TCertificadosConf.GetCertificado: ICertificate2;
var
Store : IStore3;
...
// Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
Store.Open(CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
...
end;
function TCertificadosConf.SelecionarCertificado: AnsiString;
var
Store : IStore3;
...
// Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
Store.Open(CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
...
end;
http://msdn.microsoft.com/en-us/library/windows/desktop/aa388130(v=vs.85).aspx
A pergunta é: Seria possível criar uma propriedade para definir de qual reposítorio a ACBrNFe deverá buscar os certificados?
[]'s
Rafael Soares