We’re happy to announce the release of GroupDocs.Signature for .NET v26.9, available as of September 2026. This release is a security‑focused update that introduces .NET 10 support, discontinues .NET Standard 2.1, and enforces stricter defaults for loading external resources, hashing algorithms, and certificate validation. It also adds support for signing Word documents with post‑quantum (ML‑DSA) certificates and resolves several critical bugs related to verification, logging, and platform‑specific behavior.

Co je nového v tomto vydání

  • [Feature] podpora .NET 10 a ukončení .NET Standard 2.1 (SIGNATURENET-5938)
  • [Enhancement] externí zdroje se již nenačítají ve výchozím nastavení (SIGNATURENET-5950)
  • [Enhancement] digitální podpisy PDF používají ve výchozím nastavení SHA‑256 a respektují HashAlgorithm (SIGNATURENET-5976)
  • [Enhancement] SignatureFont již neexponuje typy System.Drawing v .NET 6 a novějších (SIGNATURENET-5943)
  • [Enhancement] podepisování s prošlým nebo ještě neplatným certifikátem je ve výchozím nastavení odmítnuto (SIGNATURENET-5995)
  • [Enhancement] podepisování Word dokumentů post‑kvantovými (ML‑DSA) certifikáty (SIGNATURENET-5996)
  • [Bug] Verify neprováděl kryptografickou kontrolu digitálních podpisů PDF (SIGNATURENET-5978)
  • [Bug] při ověřování PDF dokumentů byly ignorovány SubjectName a IssuerName (SIGNATURENET-5997)
  • [Bug] přihlašovací údaje časového razítka byly odeslány jen když byly nastaveny jak uživatelské jméno, tak heslo (SIGNATURENET-5998)
  • [Bug] ukládání prezentací a Word dokumentů jako obrázků selhalo na Linuxu a macOS (SIGNATURENET-5999)
  • [Bug] LoadExternalResources byl ignorován u dokumentů uvnitř archivů (SIGNATURENET-6000)
  • [Bug] externí obrázky a stylové listy SVG obrázků byly vždy načítány (SIGNATURENET-6001)
  • [Bug] vyhledávání a ověření tabulky s propojeným obrázkem vyvolalo ArgumentNullException (SIGNATURENET-6002)
  • [Bug] CertificateVerifyOptions.Expired byl nesprávný kvůli místnímu posunu UTC (SIGNATURENET-6003)
  • [Bug] SignatureSettings.LogLevel neměl žádný vliv (SIGNATURENET-6004)
  • [Bug] znovu použitý VerifyOptions hlásil podpisy dokumentů ověřených dříve (SIGNATURENET-6005)
  • [Bug] znovu použitý DigitalSignOptions později podepisoval prezentace svým prvním certifikátem a komentářem (SIGNATURENET-6006)
  • [Enhancement] interní vylepšení (SIGNATURENET-5979)

Změny veřejného API

Member Změna
LoadOptions.SkipExternalResources Nové. bool, výchozí true. Když je true, externí zdroje se nenačítají, kromě těch, které odpovídají WhitelistedResources.
LoadOptions.WhitelistedResources Nové. List<string>, výchozí prázdný. Části adres, které mohou být načteny, když je SkipExternalResources true. Adresa se načte, pokud obsahuje některou z nich, bez ohledu na velikost písmen. Nastavení null vyprázdní seznam.
LoadOptions.LoadExternalResources Zastaralé. Stále funguje, s opačným významem než SkipExternalResources. Výchozí hodnota se změnila z true na false. Použití vyvolá varování kompilátoru CS0618.
SignatureFont implicitní konverze z System.Drawing.Font Odstraněno ve verzích .NET 6, .NET 8 a .NET 10. Zastaralé ve verzi .NET Framework. Použijte místo toho přiřazení vlastností SignatureFont.
SignOptions.HashAlgorithm Žádná změna podpisu. Nyní se uplatňuje pro digitální podpisy PDF; dříve byl ignorován.
DigitalVerifyOptions.SubjectName, DigitalVerifyOptions.IssuerName Žádná změna podpisu. Nyní se uplatňují pro PDF dokumenty; dříve byly ignorovány.
SignatureSettings.LogLevel Žádná změna podpisu. Nyní se uplatňuje: pouze zprávy úrovní, které jsou obsaženy, jsou předány loggeru, a LogLevel.None nic neloguje. Dříve byla logována každá zpráva bez ohledu na hodnotu. Popisy hodnot LogLevel byly opraveny.
VerificationResult.Succeeded, VerificationResult.TotalSignatures Žádná změna podpisu. Když je jeden objekt VerifyOptions použit pro několik volání Verify, nyní uvádí pouze podpisy právě ověřovaného dokumentu.
DigitalSignOptions.AllowExpired Nové. bool, výchozí false. Když je false, podepisování certifikátem, jehož platnost skončila, vyvolá GroupDocsSignatureException. Když je true, dokument je podepsán a zaznamená se varování.
DigitalSignOptions.AllowNotYetValid Nové. bool, výchozí false. Totéž, ale pro certifikát, jehož platnost ještě nezačala.

Nové funkce

Žádné další funkce mimo ty, které jsou uvedeny v Co je nového v tomto vydání a Změny veřejného API.

Příklad kódu

Povolit pouze důvěryhodné externí zdroje:

LoadOptions loadOptions = new LoadOptions
{
    WhitelistedResources = new List<string> { "https://cdn.example.com/images/" }
};
using (Signature signature = new Signature("sample.docx", loadOptions))
{
    // Only images from https://cdn.example.com/images/ are loaded.
}

Podepsat s SHA‑384 a použít prošlý certifikát (s varováním):

using (Signature signature = new Signature("sample.pdf"))
{
    DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
    {
        Password = "1234567890",
        HashAlgorithm = HashAlgorithm.Sha384 // honoured from this release; the default is SHA-256
    };
    signature.Sign("signed.pdf", options);
}

Podepsat s výslovně povoleným prošlým certifikátem:

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);
    // If certificate.pfx has expired, the document is signed and the console shows a warning such as:
    // The signing certificate expired on 2019-05-01 12:00 UTC (subject "CN=...", thumbprint ...).
}

Podepsat Word dokument pomocí post‑kvantového ML‑DSA certifikátu:

using (Signature signature = new Signature("sample.docx"))
{
    DigitalSignOptions options = new DigitalSignOptions("ml-dsa-65.pfx")
    {
        Password = "1234567890"
    };
    signature.Sign("signed.docx", options);
}

Nastavit logování tak, aby zobrazovalo jen chyby a varování:

SignatureSettings settings = new SignatureSettings(new ConsoleLogger())
{
    // Errors and warnings, without the step-by-step traces.
    LogLevel = LogLevel.Error | LogLevel.Warning
};

Jak získat aktualizaci

NuGet

Aktualizujte na nejnovější balíček GroupDocs.Signature přes NuGet: GroupDocs.Signature 26.9.0

Instalační příkaz:

dotnet add package GroupDocs.Signature --version 26.9.0

Přímé stažení

Stáhněte sestavení ze stránky GroupDocs.Signature for .NET 26.9

Zdroje