Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Assinando um documento XML

Recommended Posts

 Neste artigo veremos como assinar um documento XML, procedimento necessário para diversas operações. A nota fiscal eletrônica de produtos/serviços é um bom exemplo, e 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 como AssinarXML.

 

37526.png

 

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

 

37527.png

 

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

 

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

 

37528.png

 

2 - Importe os seguintes namespaces

 

37529.png

 

3 - Crie um novo procedimento com o nome AssinarDocumentoXml(), e fique a vontade para escolher o nome que quiser.

 

37531.png

 

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.

 

37532.png

 

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

 

37534.png

 

7 - Verifique se o certificado foi selecionado.

 

37535.png

 

8 - Carregue o certificado e o documento XML para a memória.

 

37537.png

 

9 - Após verificar se a tag de assinatura existe.

 

37538.png

 

10 -  O trecho abaixo é bem interessante, ele define a assinatura do XML.

 

37539.png

 

11 - Adicione as informações do certificado e salve o documento.

 

37541.png

 

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:

 

37543.png

 

2 - Vamos criar agora o procedimento que seleciona o certificado no computador.

 

37545.png

 

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

 

37551.jpg

 

Nesse exemplo,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ço e até a próxima!

 

 

 

http://imasters.com.br/artigo/20954/visual-basic/assinando-um-documento-xml

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.