Digitale Signaturen zu Präsentationen in .NET hinzufügen
Digitales Zertifikat wird verwendet, um eine passwortgeschützte PowerPoint‑Präsentation zu erstellen, die als von einer bestimmten Organisation oder Person erstellt gekennzeichnet ist. Ein digitales Zertifikat kann durch Kontaktaufnahme mit einer autorisierten Organisation – einer Zertifizierungsstelle – erhalten werden. Nach der Installation des digitalen Zertifikats im System kann es verwendet werden, um der Präsentation über Datei → Informationen → Präsentation schützen eine digitale Signatur hinzuzufügen:
Eine Präsentation kann mehr als eine digitale Signatur enthalten. Nachdem die digitale Signatur zur Präsentation hinzugefügt wurde, erscheint eine spezielle Meldung in PowerPoint:
Um eine Präsentation zu signieren oder die Authentizität von Präsentationssignaturen zu prüfen, stellt Aspose.Slides API das IDigitalSignature‑Interface, das IDigitalSignatureCollection‑Interface und die IPresentation.DigitalSignatures‑Eigenschaft bereit. Derzeit werden digitale Signaturen nur für das PPTX‑Format unterstützt.
Digitale Signatur aus einem PFX‑Zertifikat hinzufügen
Das nachstehende Code‑Beispiel zeigt, wie eine digitale Signatur aus einem PFX‑Zertifikat hinzugefügt wird:
- PFX‑Datei öffnen und das PFX‑Passwort an das DigitalSignature-Objekt übergeben.
- Die erstellte Signatur dem Präsentations‑Objekt hinzufügen.
using (Presentation pres = new Presentation())
{
// Erstelle DigitalSignature-Objekt mit PFX-Datei und PFX-Passwort
DigitalSignature signature = new DigitalSignature("testsignature1.pfx", @"testpass1");
// Kommentar zur neuen digitalen Signatur
signature.Comments = "Aspose.Slides digital signing test.";
// digitale Signatur zur Präsentation hinzufügen
pres.DigitalSignatures.Add(signature);
// Präsentation speichern
pres.Save("SomePresentationSigned.pptx", SaveFormat.Pptx);
}
Jetzt ist es möglich zu prüfen, ob die Präsentation digital signiert ist und nicht verändert wurde:
// Präsentation öffnen
using (Presentation pres = new Presentation("SomePresentationSigned.pptx"))
{
if (pres.DigitalSignatures.Count > 0)
{
bool allSignaturesAreValid = true;
Console.WriteLine("Signatures used to sign the presentation: ");
// Überprüfen, ob alle digitalen Signaturen gültig sind
foreach (DigitalSignature signature in pres.DigitalSignatures)
{
Console.WriteLine(signature.Certificate.SubjectName.Name + ", "
+ signature.SignTime.ToString("yyyy-MM-dd HH:mm") + " -- " + (signature.IsValid ? "VALID" : "INVALID"));
allSignaturesAreValid &= signature.IsValid;
}
if (allSignaturesAreValid)
Console.WriteLine("Presentation is genuine, all signatures are valid.");
else
Console.WriteLine("Presentation has been modified since signing.");
}
}
FAQ
Kann ich vorhandene Signaturen aus einer Datei entfernen?
Ja. Die Sammlung digitaler Signaturen unterstützt das Entfernen einzelner Elemente und das komplette Leeren; nach dem Speichern der Datei hat die Präsentation keine Signaturen mehr.
Wird die Datei nach dem Signieren „schreibgeschützt“?
Nein. Eine Signatur bewahrt Integrität und Urheberschaft, blockiert jedoch keine Bearbeitungen. Um das Bearbeiten einzuschränken, kann sie mit “Schreibgeschützt” oder einem Passwort kombiniert werden.
Wird die Signatur in verschiedenen PowerPoint‑Versionen korrekt angezeigt?
Die Signatur wird für den OOXML‑(PPTX‑)Container erstellt. Moderne PowerPoint‑Versionen, die OOXML‑Signaturen unterstützen, zeigen den Status solcher Signaturen korrekt an.