示例#1
0
        /// <summary>
        /// Inicializa el certificado a utilizar para transmitir la
        /// petición a la aeat.
        /// </summary>
        /// <param name="certRef">Ruta de certificado para la presentación, en caso de que se utilice uno externo.</param>
        /// <param name="certClave">Contraseña del certificado.</param>
        private void InicializaCertificado(string certRef, string certClave)
        {
            _Certificado = Certificado.Cargar(certRef, certClave);

            _CertificadoTitular = Certificado.Titular(_Certificado);

            if (_CertificadoTitular == null)
            {
                throw new Exception(Errores.MostrarMensaje("Peticion.000", $"{_Certificado.Subject}"));
            }
        }
示例#2
0
        /// <summary>
        /// Prueba la descarga con certificado.
        /// </summary>
        /// <param name="enlace">Url del pdf a descargar.</param>
        /// <returns>Datos binarios de la respuesta.</returns>
        internal virtual byte[] DescargaPdfEnlace(string enlace)
        {
            var httpWebRequest = (HttpWebRequest)WebRequest.Create(enlace);

            httpWebRequest.Method = "GET";
            httpWebRequest.ClientCertificates.Add(Certificado.Cargar());

            var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();

            byte[] result = null;

            using (var stream = httpWebResponse.GetResponseStream())
                using (BinaryReader lectorBinario = new BinaryReader(stream))
                    result = lectorBinario.ReadBytes((int)httpWebResponse.ContentLength);

            return(result);
        }