コード例 #1
0
        /// <summary>
        /// Obtém um objeto contendo o certificado digital
        /// <para>Se for informado <see cref="ConfiguracaoCertificado.Arquivo"/>,
        /// o certificado digital será obtido pelo método <see cref="ObterDeArquivo(string,string)"/>,
        /// senão será obtido pelo método <see cref="ListareObterDoRepositorio"/> </para>
        /// <para>Para liberar os recursos do certificado, após seu uso, invoque o método <see cref="X509Certificate2.Reset()"/></para>
        /// </summary>
        public static X509Certificate2 ObterCertificado(ConfiguracaoCertificado configuracaoCertificado)
        {
            if (!configuracaoCertificado.ManterDadosEmCache)
            {
                return(ObterDadosCertificado(configuracaoCertificado));
            }

            if (!string.IsNullOrEmpty(configuracaoCertificado.CacheId) && CacheCertificado.ContainsKey(configuracaoCertificado.CacheId))
            {
                return(CacheCertificado[configuracaoCertificado.CacheId]);
            }

            X509Certificate2 certificado = ObterDadosCertificado(configuracaoCertificado);

            var keyCertificado = string.IsNullOrEmpty(configuracaoCertificado.CacheId)
                ? certificado.SerialNumber
                : configuracaoCertificado.CacheId;

            configuracaoCertificado.CacheId = keyCertificado;

            CacheCertificado.Add(keyCertificado, certificado);

            return(CacheCertificado[keyCertificado]);
        }
コード例 #2
0
 private ConfiguracaoServico()
 {
     ConfiguracaoCertificado = new ConfiguracaoCertificado();
 }
コード例 #3
0
 public ConfiguracaoServico()
 {
     ConfiguracaoCertificado = new ConfiguracaoCertificado();
     TipoEmissao             = tpEmis.teNormal;
 }