Zum Fußzeileninhalt springen
PRODUKTVERGLEICHE

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");
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")
$vbLabelText   $csharpLabel

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");
}
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 If
$vbLabelText   $csharpLabel

Sichtbare 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.

Häufig gestellte Fragen

Welche drei Arten der PDF-Signatur gibt es in IronPDF?

IronPDF unterstützt: (1) kryptografische digitale Signaturen, die durch ein X.509-Zertifikat abgesichert sind, das Identität an den Inhalt bindet und bei Manipulation ungültig wird; (2) visuelle Bildstempel, die ein Bild einer handschriftlichen Unterschrift ohne kryptografischen Nachweis auf die Seite setzen; und (3) interaktive Signaturfelder, bei denen ein Benutzer später in einem PDF-Viewer unterschreibt.

Wie füge ich eine manipulationssichere digitale Signatur zu einem PDF in C# hinzu?

Laden Sie ein X.509-Zertifikat aus einer .pfx- oder .p12-Datei in ein PdfSignature-Objekt, setzen Sie den Grund der Signatur, Standort, Datum und optional eine vertrauenswürdige Zeitstempel-URL, dann rufen Sie pdf.Sign(signature) auf und speichern.

Was ist der Unterschied zwischen einer digitalen PDF-Signatur und einem visuellen Stempel?

Eine digitale Signatur bindet kryptografisch eine Zertifikat-Identität an den Dokumentinhalt — jede spätere Bearbeitung bricht sie. Ein visueller Stempel ist nur ein Bild auf der Seite: kopierbar, nicht überprüfbar und es gibt keine Garantie, dass das Dokument unverändert ist. Verwenden Sie Stempel für das Erscheinungsbild; Zertifikate für den rechtlichen Nachweis.

Warum schlägt das Signieren mit IronPDF mit dem Fehler 'privater Schlüssel nicht zugänglich' fehl?

Laden Sie das X.509-Zertifikat mit dem X509KeyStorageFlags.Exportable-Flag. Ohne dieses kann der private Schlüssel nicht zum Signieren verwendet werden.

Wie überprüfe und entferne ich Signaturen aus einem PDF in IronPDF?

Rufen Sie pdf.VerifySignatures() auf, um zu überprüfen, ob alle Signaturen gültig sind. Wenn das Ergebnis falsch ist, rufen Sie pdf.RemoveSignatures() auf, um sie vor der erneuten Verarbeitung oder dem erneuten Signieren zu entfernen.

Curtis Chau
Technischer Autor

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 ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an