В цифровом мире обеспечение подлинности и целостности документов имеет первостепенное значение. Цифровые подписи служат этой цели, предоставляя безопасное и проверяемое средство для подписания документов. В C# и .NET разработчики могут легко считывать свойства цифровых подписей из PDF-документов, что может быть важно для проверки и аудита.
В этой статье вы узнаете, как получить доступ к информации о цифровой подписи с помощью библиотеки SautinSoft.Pdf.
Чтобы прочитать свойства цифровой подписи из PDF-документа, выполните следующие действия:
Полный код
using System;
using System.IO;
using Org.BouncyCastle.X509;
using SautinSoft;
using SautinSoft.Pdf;
using SautinSoft.Pdf.Content;
using SautinSoft.Pdf.Forms;
namespace Sample
{
class Sample
{
/// <summary>
/// Read digital signature properties from a PDF document using C# and .NET
/// </summary>
/// <remarks>
/// Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/read-digital-signature-properties-from-a-pdf-document-using-csharp-dotnet.php
/// </remarks>
static void Main(string[] args)
{
// Before starting this example, please get a free trial key:
// https://sautinsoft.com/start-for-free/
// Apply the key here:
// PdfDocument.SetLicense("...");
string inpFile = Path.GetFullPath(@"..\..\..\digital signature.pdf");
using (PdfDocument document = PdfDocument.Load(inpFile))
{
var field = document.Form.Fields.FirstOrDefault(f => f is PdfSignatureField);
if (field != null && field is PdfSignatureField signField)
{
Console.WriteLine($"Name: {signField.Value.Name}.");
Console.WriteLine($"Date: {signField.Value.Date}.");
Console.WriteLine($"Location: {signField.Value.Location}.");
Console.WriteLine($"Reason: {signField.Value.Reason}.");
Console.WriteLine($"ContactInfo: {signField.Value.ContactInfo}.");
var content = signField.Value.Content;
X509Certificate certificate = new X509Certificate(content.SignerCertificate.GetRawData());
Console.WriteLine("SignerCertificate data:");
Console.WriteLine(certificate);
}
else
{
Console.WriteLine("The PDF doesn't have a digital signature!");
}
}
}
}
}
Option Infer On
Imports System
Imports System.IO
Imports Org.BouncyCastle.X509
Imports SautinSoft
Imports SautinSoft.Pdf
Imports SautinSoft.Pdf.Content
Imports SautinSoft.Pdf.Forms
Namespace Sample
Friend Class Sample
''' <summary>
''' Read digital signature properties from a PDF document using C# and .NET
''' </summary>
''' <remarks>
''' Details: https://sautinsoft.com/products/pdf/help/net/developer-guide/read-digital-signature-properties-from-a-pdf-document-using-csharp-dotnet.php
''' </remarks>
Shared Sub Main(ByVal args() As String)
' Before starting this example, please get a free trial key:
' https://sautinsoft.com/start-for-free/
' Apply the key here:
' PdfDocument.SetLicense("...");
Dim inpFile As String = Path.GetFullPath("..\..\..\digital signature.pdf")
Using document As PdfDocument = PdfDocument.Load(inpFile)
Dim field = document.Form.Fields.FirstOrDefault(Function(f) TypeOf f Is PdfSignatureField)
Dim tempVar As Boolean = TypeOf field Is PdfSignatureField
Dim signField As PdfSignatureField = If(tempVar, CType(field, PdfSignatureField), Nothing)
If field IsNot Nothing AndAlso tempVar Then
Console.WriteLine($"Name: {signField.Value.Name}.")
Console.WriteLine($"Date: {signField.Value.Date}.")
Console.WriteLine($"Location: {signField.Value.Location}.")
Console.WriteLine($"Reason: {signField.Value.Reason}.")
Console.WriteLine($"ContactInfo: {signField.Value.ContactInfo}.")
Dim content = signField.Value.Content
Dim certificate As New X509Certificate(content.SignerCertificate.GetRawData())
Console.WriteLine("SignerCertificate data:")
Console.WriteLine(certificate)
Else
Console.WriteLine("The PDF doesn't have a digital signature!")
End If
End Using
End Sub
End Class
End Namespace
Если вам нужен пример кода или у вас есть вопрос: напишите нам по адресу support@sautinsoft.ru или спросите в онлайн-чате (правый нижний угол этой страницы) или используйте форму ниже: