As Assinaturas Digitais em documentos são semelhantes às assinaturas em papel, no entanto, sendo assinaturas eletrônicas baseadas em certificados, elas contêm a identidade do signatário de forma criptografada. Os certificados são emitidos por Autoridades de Certificação confiáveis e autorizadas. Essas autoridades identificam a pessoa para quem os certificados são emitidos. É por isso que os documentos assinados digitalmente podem ser verificados a qualquer momento. Neste artigo, mostrarei como verificar programaticamente a assinatura digital em PDF, Word e Excel, documentos usando GroupDocs.Signature for .NET API com C#.

Etapas para verificar o documento PDF assinado digitalmente

Para demonstração, estou usando um documento PDF para verificação de assinatura digital. No entanto, o mesmo código funcionará para os formatos de documento MS Word e Excel.

1. Faça o download do GroupDocs.Signature for .NET ou instale-o usando o [NuGet](https://www.nuget.org/ packages/GroupDocs.Signature/).

2. Adicione os seguintes namespaces em seu código.

using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

3. Carregue um documento PDF assinado digitalmente usando uma instância da classe Signature.

using (Signature signature = new Signature("sample.pdf"))
{
    // Seu código vai aqui.
}

4. Instancie o objeto DigitalVerifyOptions e especifique as opções de verificação.

DigitalVerifyOptions options = new DigitalVerifyOptions("certificate.pfx")
{
    Comments = "Test comment"
};

5. Chame o método Verify da instância _Signature _class’ e passe _DigitalVerifyOptions _para ele.

// verificar assinaturas de documentos
VerificationResult result = signature.Verify(options);

6. Verifique os resultados da verificação do objeto VerificationResult.

if (result.IsValid)
{
    Console.WriteLine("\nDocument was verified successfully!");
}
else
{
    Console.WriteLine("\nDocument failed verification process.");
}

Código completo

using GroupDocs.Signature;
using GroupDocs.Signature.Domain;
using GroupDocs.Signature.Options;

using (Signature signature = new Signature("sample.pdf"))
{
    DigitalVerifyOptions options = new DigitalVerifyOptions("certificate.pfx")
    {
        Comments = "Test comment"
    };
    // verificar assinaturas de documentos
    VerificationResult result = signature.Verify(options);
    if (result.IsValid)
    {
        Console.WriteLine("\nDocument was verified successfully!");
    }
    else
    {
        Console.WriteLine("\nDocument failed verification process.");
    }
}

Assim, você pode determinar se a assinatura digital no documento PDF atende ou não aos critérios especificados. Por fim, você pode marcar o documento como válido ou inválido. Leia mais sobre GroupDocs.Signature for .NET API aqui.