Пример #1
0
        public static void InicializaServico(
            System.Web.Services.Protocols.SoapHttpClientProtocol oServico,
            Parametro oParam)
        {
            X509Certificate2 certificadoX509 = Certificado.BuscaNome(oParam.certificado, oParam.usaWService, oParam.tipoBuscaCertificado);

            oServico.ClientCertificates.Clear();
            oServico.ClientCertificates.Add(certificadoX509);
            if (oParam.prx)
            {
                oServico.Proxy             = new WebProxy(oParam.prxUrl, true);
                oServico.Proxy.Credentials = new NetworkCredential(oParam.prxUsr, oParam.prxPsw, oParam.prxDmn);
            }
            else
            {
                oServico.Credentials = System.Net.CredentialCache.DefaultCredentials;
            }
            oServico.Timeout = (int)oParam.timeout;
            oServico.InitializeLifetimeService();

            // forçar aceitação de todos os certificados dos servidores da SEFAZ
            // independentemente de ter a cadeia de certificação instalada
            System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); };
            //permitir os protocolos: TLS1.0 TLS1.1 TLS1.2
            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
        }