Цифровые подписи в документах похожи на бумажные подписи, однако, будучи основанными на сертификатах электронными подписями, они содержат личность подписывающего в зашифрованном виде. Сертификаты выдаются доверенными и авторизованными центрами сертификации. Эти органы идентифицируют лицо, которому выдаются сертификаты. Вот почему документы с цифровой подписью можно проверить в любое время. В этой статье я покажу вам, как программно проверить цифровую подпись в PDF, Word и Excel, документах с помощью GroupDocs.Signature for .NET API с C#.

Действия по проверке документа PDF с цифровой подписью

Для демонстрации я использую PDF-документ для проверки цифровой подписи. Однако тот же код будет работать для форматов документов MS Word и Excel.

1. Загрузите GroupDocs.Signature for .NET или установите его с помощью [NuGet](https://www.nuget.org/ пакеты/GroupDocs.Signature/).

2. Добавьте в код следующие пространства имен.

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

3. Загрузите PDF-документ с цифровой подписью, используя экземпляр класса Signature.

using (Signature signature = new Signature("sample.pdf"))
{
    // Ваш код идет сюда.
}

4. Создайте объект DigitalVerifyOptions и укажите параметры проверки.

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

5. Вызовите метод Verify экземпляра _Signature _class и передайте ему _DigitalVerifyOptions _.

// проверять подписи документов
VerificationResult result = signature.Verify(options);

6. Проверить результаты проверки из объекта VerificationResult.

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

Полный код

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"
    };
    // проверять подписи документов
    VerificationResult result = signature.Verify(options);
    if (result.IsValid)
    {
        Console.WriteLine("\nDocument was verified successfully!");
    }
    else
    {
        Console.WriteLine("\nDocument failed verification process.");
    }
}

Таким образом, вы можете определить, соответствует ли цифровая подпись в документе PDF заданным критериям или нет. Наконец, вы можете пометить документ как действительный или недействительный. Узнайте больше о GroupDocs.Signature для .NET API здесь.