Wir freuen uns, die Veröffentlichung von GroupDocs.Signature for .NET v26.9 bekannt zu geben, verfügbar seit September 2026. Dieses Update konzentriert sich auf Sicherheit, führt die Unterstützung für .NET 10 ein, stellt .NET Standard 2.1 ein und erzwingt strengere Vorgaben für das Laden externer Ressourcen, Hash‑Algorithmen und die Zertifikatsvalidierung. Außerdem wird das Signieren von Word‑Dokumenten mit post‑quantum (ML‑DSA) Zertifikaten unterstützt und mehrere kritische Fehler im Zusammenhang mit Verifikation, Protokollierung und plattformspezifischem Verhalten behoben.
Neuigkeiten in dieser Version
- [Feature] Unterstützung für .NET 10 und Einstellung von .NET Standard 2.1 (SIGNATURENET-5938)
- [Enhancement] Externe Ressourcen werden standardmäßig nicht geladen (SIGNATURENET-5950)
- [Enhancement] PDF‑Digitale Signaturen verwenden standardmäßig SHA‑256 und berücksichtigen
HashAlgorithm(SIGNATURENET-5976) - [Enhancement]
SignatureFontgibt keineSystem.Drawing‑Typen mehr unter .NET 6 und höher frei (SIGNATURENET-5943) - [Enhancement] Signieren mit einem abgelaufenen oder noch nicht gültigen Zertifikat wird standardmäßig abgelehnt (SIGNATURENET-5995)
- [Enhancement] Signieren von Word‑Dokumenten mit post‑quantum (ML‑DSA) Zertifikaten (SIGNATURENET-5996)
- [Bug]
Verifyprüfte PDF‑Digitale Signaturen nicht kryptografisch (SIGNATURENET-5978) - [Bug]
SubjectNameundIssuerNamewurden bei der Verifikation von PDF‑Dokumenten ignoriert (SIGNATURENET-5997) - [Bug] Anmeldedaten für Zeitstempeldienste wurden nur gesendet, wenn sowohl Benutzername als auch Passwort gesetzt waren (SIGNATURENET-5998)
- [Bug] Das Speichern von Präsentationen und Word‑Dokumenten als Bilder schlug unter Linux und macOS fehl (SIGNATURENET-5999)
- [Bug]
LoadExternalResourceswurde für Dokumente in Archiven ignoriert (SIGNATURENET-6000) - [Bug] Externe Bilder und Stylesheets von SVG‑Bildern wurden immer geladen (SIGNATURENET-6001)
- [Bug] Suche und Verifikation einer Tabellenkalkulation mit verknüpftem Bild lösten
ArgumentNullExceptionaus (SIGNATURENET-6002) - [Bug]
CertificateVerifyOptions.Expiredwar wegen des lokalen UTC‑Offsets falsch (SIGNATURENET-6003) - [Bug]
SignatureSettings.LogLevelhatte keine Wirkung (SIGNATURENET-6004) - [Bug] Wiederverwendete
VerifyOptionsmeldeten Signaturen von zuvor verifizierten Dokumenten (SIGNATURENET-6005) - [Bug] Wiederverwendete
DigitalSignOptionssignierten spätere Präsentationen mit dem ersten Zertifikat und Kommentar (SIGNATURENET-6006) - [Enhancement] Interne Verbesserungen (SIGNATURENET-5979)
Änderungen an der öffentlichen API
| Mitglied | Änderung |
|---|---|
LoadOptions.SkipExternalResources |
Neu. bool, Standardwert true. Wenn true, werden externe Ressourcen nicht geladen, außer solche, die zu WhitelistedResources passen. |
LoadOptions.WhitelistedResources |
Neu. List<string>, standardmäßig leer. Teile von Adressen, die geladen werden dürfen, während SkipExternalResources true ist. Eine Adresse wird geladen, wenn sie einen dieser Teile enthält, Groß‑/Kleinschreibung wird ignoriert. Das Setzen von null leert die Liste. |
LoadOptions.LoadExternalResources |
Veraltet. Funktioniert weiterhin, hat die gegenteilige Bedeutung von SkipExternalResources. Der Standardwert änderte sich von true zu false. Die Verwendung erzeugt die Compiler‑Warnung CS0618. |
Implizite Konvertierung von SignatureFont aus System.Drawing.Font |
Entfernt aus den .NET 6, .NET 8 und .NET 10 Builds. Veraltet im .NET Framework Build. Stattdessen die Eigenschaften von SignatureFont direkt zuweisen. |
SignOptions.HashAlgorithm |
Keine API‑Änderung. Wirkt jetzt bei PDF‑Digital‑Signaturen; vorher wurde es ignoriert. |
DigitalVerifyOptions.SubjectName, DigitalVerifyOptions.IssuerName |
Keine API‑Änderung. Wirken jetzt bei PDF‑Dokumenten; vorher wurden sie dort ignoriert. |
SignatureSettings.LogLevel |
Keine API‑Änderung. Wirkt jetzt: Nur Nachrichten der enthaltenen Ebenen erreichen den Logger, und LogLevel.None protokolliert nichts. Vorher wurde jede Nachricht protokolliert, unabhängig vom Wert. Die Beschreibungen der LogLevel‑Werte wurden korrigiert. |
VerificationResult.Succeeded, VerificationResult.TotalSignatures |
Keine API‑Änderung. Wenn ein VerifyOptions‑Objekt für mehrere Verify‑Aufrufe verwendet wird, listet es jetzt nur die Signaturen des gerade verifizierten Dokuments auf. |
DigitalSignOptions.AllowExpired |
Neu. bool, Standardwert false. Wenn false, löst das Signieren mit einem abgelaufenen Zertifikat eine GroupDocsSignatureException aus. Wenn true, wird das Dokument signiert und eine Warnung protokolliert. |
DigitalSignOptions.AllowNotYetValid |
Neu. bool, Standardwert false. Gleiches Verhalten für ein Zertifikat, dessen Gültigkeitszeitraum noch nicht begonnen hat. |
Neue Funktionen
Keine neuen Funktionen über die in Neuigkeiten in dieser Version und Änderungen an der öffentlichen API aufgeführten hinaus.
Codebeispiel
Nur vertrauenswürdige externe Ressourcen zulassen:
LoadOptions loadOptions = new LoadOptions
{
WhitelistedResources = new List<string> { "https://cdn.example.com/images/" }
};
using (Signature signature = new Signature("sample.docx", loadOptions))
{
// Nur Bilder von https://cdn.example.com/images/ werden geladen.
}
Mit SHA‑384 signieren und ein abgelaufenes Zertifikat verwenden (mit Warnung):
using (Signature signature = new Signature("sample.pdf"))
{
DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
{
Password = "1234567890",
HashAlgorithm = HashAlgorithm.Sha384 // ab diesem Release berücksichtigt; Standard ist SHA‑256
};
signature.Sign("signed.pdf", options);
}
Ein abgelaufenes Zertifikat explizit zulassen:
SignatureSettings settings = new SignatureSettings(new ConsoleLogger());
using (Signature signature = new Signature("sample.pdf", settings))
{
DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
{
Password = "1234567890",
AllowExpired = true
};
signature.Sign("signed.pdf", options);
// Wenn certificate.pfx abgelaufen ist, wird das Dokument signiert und die Konsole zeigt eine Warnung wie:
// The signing certificate expired on 2019-05-01 12:00 UTC (subject "CN=...", thumbprint ...).
}
Ein Word‑Dokument mit einem post‑quantum ML‑DSA Zertifikat signieren:
using (Signature signature = new Signature("sample.docx"))
{
DigitalSignOptions options = new DigitalSignOptions("ml-dsa-65.pfx")
{
Password = "1234567890"
};
signature.Sign("signed.docx", options);
}
Logging so konfigurieren, dass nur Fehler und Warnungen angezeigt werden:
SignatureSettings settings = new SignatureSettings(new ConsoleLogger())
{
// Fehler und Warnungen, ohne Schritt‑für‑Schritt‑Spuren.
LogLevel = LogLevel.Error | LogLevel.Warning
};
So erhalten Sie das Update
NuGet
Aktualisieren Sie das neueste GroupDocs.Signature‑Paket über NuGet: GroupDocs.Signature 26.9.0
Installationsbefehl:
dotnet add package GroupDocs.Signature --version 26.9.0
Direkter Download
Laden Sie die Assemblies von der Seite GroupDocs.Signature for .NET 26.9 herunter