示例#1
0
        // Metodo padrão X509 para ler o certificado.
        // os sertificados deverão está na pasta ~/certificado/
        // Parametros certificado = "nome sem a extensão" / senha do certificado
        private static X509Certificate2 GetClientCertificate(ServicoParametros servicoParametros)
        {
            //Carrega o arquivo de certificado A1 (verificar sempre a validade dele.
            //string priKeyFile = HttpContext.Current.Server.MapPath("~/certificado/" + certificado+".pfx");
            //var extensao = ".pfx";
            string priKeyFile =
                System.IO.Path.Combine(
                    System.IO.Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase).LocalPath)
                    , "certificado"
                    , servicoParametros.GetCertificado()
                    );

            X509Certificate2 certEncrypt = new X509Certificate2(priKeyFile, servicoParametros.GetSenhaCertificado()); // passa a senha

            return(certEncrypt);
        }
示例#2
0
        public static HttpClient ClienteHttp(ServicoParametros servicoParametros)
        {
            X509Certificate2 clientCert = GetClientCertificate(servicoParametros);

            requestHandler = new WebRequestHandler();
            requestHandler.ClientCertificates.Add(clientCert);

            //Seta a parte de segurança.
            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Ssl3;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;

            client = new HttpClient(requestHandler);

            return(client);
        }
示例#3
0
        public Boolean GetTokenAutenticado(ServicoParametros servicoParametros)
        {
            //Para autenticação só usar o Principal.
            if (!servicoParametros.GetServicoEmTeste())
            {
                url = "https://portalunico.siscomex.gov.br";
            }
            else
            {
                url = "https://val.portalunico.siscomex.gov.br";
            }

            client = ChaveX509.ClienteHttp(servicoParametros);

            //Se setado para Teste usa a Url de teste (val.)
            client.BaseAddress = new Uri(url);
            client.DefaultRequestHeaders.Clear();

            //Adicionar o cabecario do tipo de documento
            client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            // adioncionar o Header Role-Type - Setar nas configurações
            client.DefaultRequestHeaders.Add("Role-Type", servicoParametros.GetTipoRoleType());

            var metodo = "/portal/api/autenticar";  // Metodo padrão para autenticacao

            response = client.GetAsync(metodo).Result;

            //se retornar com sucesso busca os dados
            if (!response.IsSuccessStatusCode)
            {
                return(false);
            }

            //recolhe as informações para setar.
            var setToken     = response.Headers.FirstOrDefault(h => h.Key.Trim().Equals("Set-Token"));
            var setCSRFToken = response.Headers.FirstOrDefault(h => h.Key.Trim().Equals("X-CSRF-Token"));

            token      = setToken.Value;
            xCSRFtoken = setCSRFToken.Value;

            return(true);
        }
示例#4
0
        public static X509Certificate2 GetCertificate(ServicoParametros servicoParametros)
        {
            X509Certificate2 clientCert = GetClientCertificate(servicoParametros);

            return(clientCert);
        }