Migration von Aspose PDF zu IronPDF
"Signieren" bedeutet drei verschiedene Dinge in IronPDF, und sie sind nicht austauschbar: eine manipulationssichere digitale Signatur, die durch ein Zertifikat unterstützt wird, ein visueller Stempel eines handgeschriebenen Bildes und ein interaktives Feld für Benutzer zum späteren Signieren. Ihre Sicherheitseigenschaften unterscheiden sich, sodass sich die Anwendungsfälle entlang dieser Linie aufteilen. Der kryptografische Kern ist die PdfSignature-Klasse mit einem X509Certificate2, das aus einer .pfx- oder .p12-Datei geladen und mit pdf.Sign(...) angewendet wird. Das bindet Identität an Inhalt, sodass jede spätere Bearbeitung die Signatur aufhebt.
Manipulationssichere Verträge und Vereinbarungen
Das, worauf die meisten Teams zuerst zugreifen. Eine Zertifikatsignatur beweist, dass das Dokument authentisch und unverändert ist und ermöglicht das Einbetten einer Prüfkette (Grund, Ort, Kontakt, Datum) und eines vertrauenswürdigen Zeitstempels:
using IronPdf;
using IronPdf.Signing;
using System;
var pdf = PdfDocument.FromFile("contract.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Contractual Agreement",
SigningLocation = "Chicago, USA",
SignatureDate = DateTime.Now,
TimeStampUrl = new Uri("http://timestamp.digicert.com"),
TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
};
pdf.Sign(signature);
pdf.SaveAs("contract-signed.pdf");Imports IronPdf
Imports IronPdf.Signing
Imports System
Dim pdf = PdfDocument.FromFile("contract.pdf")
Dim signature = New PdfSignature("certificate.pfx", "password") With {
.SigningReason = "Contractual Agreement",
.SigningLocation = "Chicago, USA",
.SignatureDate = DateTime.Now,
.TimeStampUrl = New Uri("http://timestamp.digicert.com"),
.TimestampHashAlgorithm = TimestampHashAlgorithms.SHA256
}
pdf.Sign(signature)
pdf.SaveAs("contract-signed.pdf")Ein Zeitstempel von einer vertrauenswürdigen Behörde liefert kryptografische Beweise dafür, wann ein Dokument signiert wurde, unabhängig von der lokalen Uhr – was für Anschriften und regulierte Einreichungen von Bedeutung ist.
Sperren von Dokumenten nach dem Signieren
Die SignaturePermissions-Einstellung steuert, was danach erlaubt ist: NoChangesAllowed sperrt das Dokument, FormFillingAllowed erlaubt nur die Eingabe von Feldern, und AnnotationsAndFormFillingAllowed erlaubt auch Notizen. Jede nicht zulässige Aktion macht die Signatur ungültig, was für ausgestellte Zertifikate, genehmigte Richtlinien und abgeschlossene Erklärungen geeignet ist.
Genehmigungs-Workflows mit mehreren Parteien
Da PDFs inkrementelles Speichern unterstützen, gilt eine Signatur für eine bestimmte Revision. Jeder Genehmiger unterschreibt seine eigene, und die Historie erfasst, wer was, wann unterzeichnete und was sich änderte. Dies deckt Gegenzeichnungen und sequenzielles Abzeichnen ab.
Überprüfungs- und Audit-Gates
Eine Pipeline kann jedes Dokument ablehnen, das nicht verifiziert werden kann, und dann rollt zurück oder entfernt Signaturen:
var pdf = PdfDocument.FromFile("signed-report.pdf");
bool valid = pdf.VerifySignatures();
if (!valid)
{
pdf.RemoveSignatures();
pdf.SaveAs("report-unsigned.pdf");
}Dim pdf = PdfDocument.FromFile("signed-report.pdf")
Dim valid As Boolean = pdf.VerifySignatures()
If Not valid Then
pdf.RemoveSignatures()
pdf.SaveAs("report-unsigned.pdf")
End IfSichtbare Genehmigung ohne Kryptografie
Wenn Sie nur das Aussehen einer Signatur benötigen, nicht die rechtliche Nicht-Abstreitbarkeit, stempeln Sie ein gescanntes handschriftliches Bild mit der Stempel- oder Wasserzeichenfunktion. Gut für interne Freigaben, solange Sie klarstellen, um was es sich handelt.
Stempel oder Zertifikat, und zwei Überraschungen
Lassen Sie ein gestempeltes Bild nie als Ersatz für eine Zertifikatsignatur stehen. Ein Stempel sind Pixel auf einer Seite: kopierbar, nicht überprüfbar, keine Garantie dafür, dass das Dokument unverändert ist. Eine Zertifikatsignatur ist manipulationssicher und bindet Identität kryptografisch an den Inhalt. Verwenden Sie den Stempel für das Aussehen, das Zertifikat für den Nachweis.
Zwei Dinge erwarten die Leute nicht. Laden Sie das Zertifikat mit X509KeyStorageFlags.Exportable oder der private Schlüssel kann nicht verwendet werden und die Signierung schlägt fehl. Und wenn ein Betrachter eine Warnung zeigt und kein grünes Häkchen, befindet sich das Zertifikat nicht im vertrauenswürdigen Speicher dieses Betrachters; die Signatur ist trotzdem gültig, aber das Vertrauen muss separat hergestellt werden.

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.