Hinzufügen einer digitalen Signatur zu PDF C#

Digitale Signaturen werden verwendet, um PDF Dokumente zu sichern, bevor sie mit Dritten geteilt werden. Das digitale Signieren eines PDF Dokuments ermöglicht es, Manipulationen zu erkennen, indem das Dokument anhand der digitalen Signatur verifiziert wird. Um die PDF Dokumente programmgesteuert mit digitalen Signaturen zu sichern, zeigt Ihnen dieser Artikel, wie Sie digitale Signaturen in PDF Dateien in C# hinzufügen. Außerdem erfahren Sie, wie Sie die digitalen Signaturen in PDF Dateien in C# überprüfen.

C# .NET API zum Hinzufügen digitaler Signaturen in PDF

Um digitale Signaturen in PDF Dokumenten hinzuzufügen und zu überprüfen, verwenden wir die API Aspose.PDF for .NET, eine leistungsstarke API zur PDF-Bearbeitung zum Erstellen, Bearbeiten, Konvertieren und digitalen Signieren von PDF Dokumenten. Sie können Aspose.PDF for .NET herunterladen oder es auf eine der folgenden Arten in Visual Studio installieren:

NuGet Paket Manager

PDF digital in C# signieren

Paket-Manager Konsole

PM> Install-Package Aspose.PDF

Hinzufügen einer digitalen Signatur zu einem PDF in C#

Im Folgenden sind die Schritte zum Signieren eines PDF Dokuments mit Aspose.PDF for .NET aufgeführt.

  • Erstellen Sie ein Objekt der Klasse Document und initialisieren Sie es mit dem Pfad des PDF Dokuments.
  • Erstellen Sie ein Objekt der Klasse PdfFileSignature und initialisieren Sie es mit dem Objekt der Document Klasse.
  • Erstellen Sie ein Objekt der Klasse PKCS7 und initialisieren Sie es mit einem Zertifikatspfad und einem Kennwort.
  • Erstellen und initialisieren Sie das Objekt der Klasse DocMDPSignature für den MDP-Signaturtyp.
  • Erstellen Sie ein Rechteck für die Signaturplatzierung.
  • PDF Dokument mit der methode PdfFileSignature.Certify() digital signieren.
  • Speichern Sie das Dokument mit der methode PdfFileSignature.Save().

Das folgende Codebeispiel zeigt, wie Sie einem PDF Dokument in C# eine digitale Signatur hinzufügen.

// PDF Dokument laden
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
		DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// Signatur-Erscheinungsbild festlegen
		signature.SignatureAppearance = @"aspose-logo.png";
		// Erstellen Sie einen der drei Signaturtypen
		signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
		// Digital signierte PDF Datei speichern
		signature.Save("Digitally Signed PDF.pdf");
	}
}

C# Hinzufügen einer digitalen Signatur zu PDF mithilfe von Timestamp Server

Sie können einem PDF Dokument mit dem TimeStamp-Server auch eine digitale Signatur hinzufügen, indem Sie seine Details mithilfe der Klasse TimestampSettings bereitstellen. Das folgende Codebeispiel zeigt, wie Sie ein PDF Dokument mit einem TimeStamp-Server in C# digital signieren.

// PDF Dokument laden
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "WebSales"); // Use PKCS7/PKCS7Detached objects
		TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
		pkcs.TimestampSettings = timestampSettings;
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// Erstellen Sie einen der drei Signaturtypen
		signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
		// Ausgabe-PDF Datei speichern
		signature.Save("Output.pdf");
	}
}

Digital signiertes PDF in C# verifizieren

Im Folgenden sind die Schritte zum Überprüfen der digitalen Signatur in einem PDF Dokument aufgeführt:

  • Erstellen Sie ein Objekt der Klasse Document und initialisieren Sie es mit dem Pfad des PDF Dokuments.
  • Erstellen Sie ein Objekt der Klasse PdfFileSignature und initialisieren Sie es mit dem Objekt der Document Klasse.
  • Greifen Sie auf alle Signaturen des PDF Dokuments zu.
  • Überprüfen Sie die Gültigkeit der Signatur mit der methode PdfFileSignature.VerifySigned().

Das folgende Codebeispiel zeigt, wie die digitale Signatur in PDF mit C# überprüft wird.

// PDF Dokument laden
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		IList<string> sigNames = signature.GetSignNames();
		if (sigNames.Count > 0) // Any signatures?
		{
			if (signature.VerifySigned(sigNames[0] as string)) // Verify first one
			{
				if (signature.IsCertified) // Certified?
				{
					if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
					{
						// Etwas tun
					}
				}
			}
		}
	}
}

Probieren Sie Aspose.PDF for .NET kostenlos aus

Sie können eine kostenlose temporäre Lizenz erwerben, um Aspose.PDF for .NET auszuprobieren und zu verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie digitale Signaturen zu PDF Dateien in C#.NET hinzufügen. Außerdem haben Sie gesehen, wie Sie die digital signierten PDF Dateien programmgesteuert in C# überprüfen. Sie können Aspose.PDF for .NET einfach in Ihren Anwendungen installieren und Ihre PDF Dateien nahtlos digital signieren.

In Verbindung stehende Artikel