Beispiel #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Exemplo de Assinatura Digital XML\r\r");
            Console.Write("Arquivo xml a ser assinado :");
            string _arquivo = Console.ReadLine();

            if (_arquivo == null)
            {
                Console.WriteLine("\rNome de arquivo não informado...");
            }
            else if (!File.Exists(_arquivo))
            {
                Console.WriteLine("\rArquivo {0} inexistente...", _arquivo);
            }
            else
            {
                Console.Write("URI a ser assinada (Ex.: infCanc, infNFe, infInut, etc.) :");
                string _uri = Console.ReadLine();
                if (_uri == null)
                {
                    Console.WriteLine("\rURI não informada...");
                }
                else
                {
                    //
                    //   le o arquivo xml
                    //
                    StreamReader SR;
                    string       _stringXml;
                    SR         = File.OpenText(_arquivo);
                    _stringXml = SR.ReadToEnd();
                    SR.Close();
                    //
                    //  realiza assinatura
                    //
                    AssinaturaDigital AD = new AssinaturaDigital();
                    //
                    //  cria cert
                    //
                    X509Certificate2 cert = new X509Certificate2();
                    //
                    //  seleciona certificado do repositório MY do windows
                    //
                    Certificado certificado = new Certificado();
                    cert = certificado.BuscaNome("");
                    int resultado = AD.Assinar(_stringXml, _uri, cert);
                    if (resultado == 0)
                    {
                        //
                        //  grava arquivo assinado
                        //
                        StreamWriter SW;
                        SW = File.CreateText(_arquivo.Trim() + "_assinado");
                        SW.Write(AD.XMLStringAssinado);
                        SW.Close();
                    }
                    Console.WriteLine(AD.mensagemResultado);
                }
            }
        }
        static void Main(string[] args)
        {
            string msgLog = "";

            string _arquivo = args[0];

            if (_arquivo == null)
            {
                msgLog += "\rNome de arquivo não informado...";
            }
            else if (!File.Exists(_arquivo))
            {
                msgLog += "\rArquivo {0} inexistente..." + _arquivo;
            }
            else
            {
                //Console.Write("URI a ser assinada (Ex.: infCanc, infNFe, infInut, etc.) :");
                //string _uri = Console.ReadLine();
                string _uri = args[1]; //"LoteRps";
                if (_uri == null)
                {
                    msgLog += "\rURI não informada...";
                }
                else
                {
                    //
                    //   le o arquivo xml
                    //
                    StreamReader SR;
                    string       _stringXml;
                    SR         = File.OpenText(_arquivo);
                    _stringXml = RemoverCaracteresEspeciais(RemoverAcentos(SR.ReadToEnd()));
                    //_stringXml = SR.ReadToEnd();
                    SR.Close();
                    //
                    //  realiza assinatura
                    //
                    AssinaturaDigital AD = new AssinaturaDigital();
                    //
                    //  cria cert
                    //
                    X509Certificate2 cert = new X509Certificate2();
                    //
                    //  seleciona certificado do repositório MY do windows
                    //
                    //Certificado certificado = new Certificado();
                    //string nroSerieCertificado = Convert.ToString(ConfigurationManager.AppSettings["nroSerieCertificado"]);
                    //cert = certificado.BuscaNroSerie(nroSerieCertificado);
                    int resultado = AD.Assinar(_stringXml, _uri, args[2], args[3]);
                    if (resultado == 0)
                    {
                        //
                        //  grava arquivo assinado
                        //

                        StreamWriter SW;
                        SW = File.CreateText(_arquivo.Replace(".xml", "_ass.xml").Trim());
                        SW.Write(AD.XMLStringAssinado);
                        SW.Close();

                        /*
                         * XmlTextWriter writer = new XmlTextWriter(_arquivo.Replace(".xml", "_ass.xml").Trim(), null);
                         * writer.Formatting = Formatting.Indented;
                         * AD.XMLDocAssinado.Save(writer);
                         */
                    }

                    msgLog += AD.mensagemResultado;

                    //
                    //  grava arquivo de log
                    //
                    StreamWriter Log;
                    Log = File.CreateText(_arquivo.Replace(".xml", "_log.txt").Trim());
                    Log.Write(msgLog);
                    Log.Close();
                }
            }
        }