Assinando um documento XML

Hoje vou mostrar como assinar um documento XML, procedimento necessário para diversas operações, um exemplo é nota fiscal eletrônica de produtos/serviços que exige a assinatura do documento usando um certificado digital válido instalado na sua máquina, token, smartcards etc…

Os certificados utilizados normalmente  são o tipo A1 e A3, sendo que o primeiro é armazenado no computador do solicitante, enquanto que o segundo é guardado em cartões inteligentes (smartcards) ou tokens protegidos por senha.

Vamos ao projeto!

1 – Comece iniciando um novo projeto Windows Forms e nomeando o mesmo como

AssinarXML

Comece iniciando um novo projeto Windows Forms e nomeando o mesmo como AssinarXML

2 – Configure o formulário principal da seguinte maneira:

Agora que o formulário está configurado vamos ao código

1 – Adicione a seguinte referência em seu projeto System.Security

2 – Importe os seguintes namespaces

 Importe os seguintes namespaces

3 – Crie uma novo procedimento com o nome AssinarDocumentoXml(), fique a vontade para escolher o nome que quiser;

4 – Inicie um novo bloco Try…Catch imediatamente antes da instrução End Sub para pegar as exceções e dentro desse bloco vamos começar a programar;

5 – Pegamos o conteúdo do XML original usando StreamReader e guardamos o resultado na variável srtXML;

6 – Instanciamos um novo objeto que representa um certificado e selecionados um certificado válido usando o número serial como parâmetro;

7 – Verifica se o certificado foi selecionado;

8 – Carrega o certificado e o documento XML para a memória;

9 – Após verificar se a tag de assinatura existe;

10 –  Agora o trecho abaixo é bem interessante, ele define a assinatura do XML;

11 – Adicionamos as informações do certificado e salva o documento.

Agora que já criamos o procedimento responsável por assinar nosso documento, vamos configurar nosso formulário que foi criado logo acima.

1 – No botão Selecionar XML adicionamos o seguinte código;

2 – Vamos criar agora o procedimento que seleciona o certificado no computador;

3 – Agora é só adicionar os códigos abaixo no evento click dos botões Selecionar Certificado e Assinar o XML.

Nesse exemplo eu assinei uma Nota Fiscal Eletrônica De Serviço onde o uso da assinatura digital é obrigatório, lembrando que para assinar um documento XML você precisa ter o certificado correto.

Download do projeto: http://www.zumodrive.com/share/cNetMWVjZT

Abraços e até a próxima.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: