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.
Bu sürümde yenilikler
- [Feature] .NET 10 desteği ve .NET Standard 2.1 kullanım dışı bırakıldı (SIGNATURENET-5938)
- [Enhancement] Dış kaynaklar artık varsayılan olarak yüklenmiyor (SIGNATURENET-5950)
- [Enhancement] PDF dijital imzaları varsayılan olarak SHA‑256 kullanıyor ve HashAlgorithm’a saygı gösteriyor (SIGNATURENET-5976)
- [Enhancement] SignatureFont, .NET 6 ve sonrası sürümlerde System.Drawing türlerini artık ortaya çıkarmıyor (SIGNATURENET-5943)
- [Enhancement] Süresi dolmuş veya henüz geçerli olmayan bir sertifika ile imzalama varsayılan olarak reddediliyor (SIGNATURENET-5995)
- [Enhancement] Word belgelerini post‑kuantum (ML‑DSA) sertifikalarıyla imzalama (SIGNATURENET-5996)
- [Bug] Verify, PDF dijital imzalarını kriptografik olarak kontrol etmiyordu (SIGNATURENET-5978)
- [Bug] PDF belgeleri doğrulanırken SubjectName ve IssuerName göz ardı ediliyordu (SIGNATURENET-5997)
- [Bug] Zaman damgası sunucusu kimlik bilgileri yalnızca kullanıcı adı ve şifre ikisi de ayarlandığında gönderiliyordu (SIGNATURENET-5998)
- [Bug] Sunum ve Word belgelerini resim olarak kaydetme Linux ve macOS’ta başarısız oluyordu (SIGNATURENET-5999)
- [Bug] LoadExternalResources, arşiv içindeki belgeler için yok sayılıyordu (SIGNATURENET-6000)
- [Bug] SVG resimlerinin dış resimleri ve stil sayfaları her zaman yükleniyordu (SIGNATURENET-6001)
- [Bug] Bağlantılı bir resim içeren bir elektronik tabloyun aranması ve doğrulanması ArgumentNullException fırlatıyordu (SIGNATURENET-6002)
- [Bug] CertificateVerifyOptions.Expired, yerel UTC kayması nedeniyle hatalıydı (SIGNATURENET-6003)
- [Bug] SignatureSettings.LogLevel hiçbir etki göstermiyordu (SIGNATURENET-6004)
- [Bug] Yeniden kullanılan VerifyOptions, daha önce doğrulanan belgelerin imzalarını rapor ediyordu (SIGNATURENET-6005)
- [Bug] Yeniden kullanılan DigitalSignOptions, sonraki sunumları ilk sertifikası ve yorumu ile imzalıyordu (SIGNATURENET-6006)
- [Enhancement] İç iyileştirmeler (SIGNATURENET-5979)
Genel API değişiklikleri
| Üye | Değişiklik |
|---|---|
LoadOptions.SkipExternalResources |
Yeni. bool, varsayılan true. true olduğunda, dış kaynaklar yüklenmez, WhitelistedResources ile eşleşenler hariç. |
LoadOptions.WhitelistedResources |
Yeni. List<string>, varsayılan boş. SkipExternalResources true iken yüklenebilecek adres parçaları. Bir adres, bunlardan birini içerdiğinde (büyük/küçük harf duyarsız) yüklenir. null ayarlandığında liste temizlenir. |
LoadOptions.LoadExternalResources |
Eski. Hâlâ çalışır, SkipExternalResources ters anlamıyla. Varsayılanı true‘dan false‘a değişti. Kullanımı derleyici uyarısı CS0618 üretir. |
SignatureFont implicit conversion from System.Drawing.Font |
Kaldırıldı .NET 6, .NET 8 ve .NET 10 derlemelerinden. Eski .NET Framework derlemesinde. Bunun yerine SignatureFont özelliklerini atayın. |
SignOptions.HashAlgorithm |
İmza değişikliği yok. Artık PDF dijital imzalarında etkili; önceden yok sayılıyordu. |
DigitalVerifyOptions.SubjectName, DigitalVerifyOptions.IssuerName |
İmza değişikliği yok. Artık PDF belgelerinde etkili; önceden yok sayılıyordu. |
SignatureSettings.LogLevel |
İmza değişikliği yok. Artık etkili: yalnızca içinde bulunduğu seviyelerdeki mesajlar logger’a ulaşır ve LogLevel.None hiçbir şey kaydetmez. Önceden değer ne olursa olsun tüm mesajlar kaydediliyordu. LogLevel değerlerinin açıklamaları düzeltildi. |
VerificationResult.Succeeded, VerificationResult.TotalSignatures |
İmza değişikliği yok. Bir VerifyOptions nesnesi birden fazla Verify çağrısında kullanıldığında, artık yalnızca yeni doğrulanan belgenin imzalarını listeler. |
DigitalSignOptions.AllowExpired |
Yeni. bool, varsayılan false. false olduğunda, geçerlilik süresi dolmuş bir sertifika ile imzalama GroupDocsSignatureException fırlatır. true olduğunda belge imzalanır ve bir uyarı kaydedilir. |
DigitalSignOptions.AllowNotYetValid |
Yeni. bool, varsayılan false. Henüz geçerli olmamış bir sertifika için aynı davranış. |
Yeni özellikler
Bu sürümdeki Bu sürümde yenilikler ve Genel API değişiklikleri bölümlerinde listelenenler dışında yeni özellik yok.
Kod örneği
Yalnızca güvenilir dış kaynaklara izin ver:
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.
}
SHA‑384 ile imzalayın ve süresi dolmuş bir sertifika kullanın (uyarı ile):
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);
}
Süresi dolmuş bir sertifikayı açıkça izin vererek imzalayın:
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 ...).
}
Bir Word belgesini post‑kuantum ML‑DSA sertifikasıyla imzalayın:
using (Signature signature = new Signature("sample.docx"))
{
DigitalSignOptions options = new DigitalSignOptions("ml-dsa-65.pfx")
{
Password = "1234567890"
};
signature.Sign("signed.docx", options);
}
Günlüğü yalnızca hata ve uyarıları gösterecek şekilde yapılandırın:
SignatureSettings settings = new SignatureSettings(new ConsoleLogger())
{
// Errors and warnings, without the step-by-step traces.
LogLevel = LogLevel.Error | LogLevel.Warning
};
Güncellemeyi nasıl alabilirsiniz
NuGet
NuGet üzerinden en son GroupDocs.Signature paketine yükseltin: GroupDocs.Signature 26.9.0
Kurulum komutu:
dotnet add package GroupDocs.Signature --version 26.9.0
Doğrudan indirme
Derlemeleri GroupDocs.Signature for .NET 26.9 sayfasından indirin