Chúng tôi rất vui mừng thông báo về việc phát hành GroupDocs.Signature for .NET v26.9, có sẵn từ tháng 9 năm 2026. Bản cập nhật này tập trung vào bảo mật, giới thiệu hỗ trợ .NET 10, ngừng hỗ trợ .NET Standard 2.1 và áp dụng các mặc định nghiêm ngặt hơn cho việc tải tài nguyên bên ngoài, thuật toán băm và xác thực chứng chỉ. Ngoài ra, nó còn hỗ trợ ký tài liệu Word bằng chứng chỉ hậu lượng tử (ML-DSA) và khắc phục một số lỗi nghiêm trọng liên quan đến xác minh, ghi log và hành vi trên các nền tảng cụ thể.
Những gì mới trong bản phát hành này
- [Feature] Hỗ trợ .NET 10 và ngừng .NET Standard 2.1 (SIGNATURENET-5938)
- [Enhancement] Tài nguyên bên ngoài không còn được tải mặc định (SIGNATURENET-5950)
- [Enhancement] Chữ ký số PDF sử dụng SHA-256 mặc định và tôn trọng HashAlgorithm (SIGNATURENET-5976)
- [Enhancement] SignatureFont không còn phơi bày các kiểu System.Drawing trên .NET 6 trở lên (SIGNATURENET-5943)
- [Enhancement] Ký bằng chứng chỉ đã hết hạn hoặc chưa có hiệu lực sẽ bị từ chối mặc định (SIGNATURENET-5995)
- [Enhancement] Ký tài liệu Word bằng chứng chỉ hậu lượng tử (ML-DSA) (SIGNATURENET-5996)
- [Bug] Verify không kiểm tra chữ ký số PDF một cách mật mã (SIGNATURENET-5978)
- [Bug] SubjectName và IssuerName bị bỏ qua khi xác minh tài liệu PDF (SIGNATURENET-5997)
- [Bug] Thông tin xác thực máy chủ dấu thời gian chỉ được gửi khi cả tên người dùng và mật khẩu đều được đặt (SIGNATURENET-5998)
- [Bug] Lưu bản trình chiếu và tài liệu Word dưới dạng hình ảnh thất bại trên Linux và macOS (SIGNATURENET-5999)
- [Bug] LoadExternalResources bị bỏ qua cho các tài liệu trong kho lưu trữ (SIGNATURENET-6000)
- [Bug] Hình ảnh và bảng kiểu của SVG luôn được tải (SIGNATURENET-6001)
- [Bug] Tìm kiếm và xác minh bảng tính có ảnh liên kết gây ra ArgumentNullException (SIGNATURENET-6002)
- [Bug] CertificateVerifyOptions.Expired sai lệch theo độ lệch UTC địa phương (SIGNATURENET-6003)
- [Bug] SignatureSettings.LogLevel không có hiệu lực (SIGNATURENET-6004)
- [Bug] Một VerifyOptions được tái sử dụng báo cáo các chữ ký của tài liệu đã được xác minh trước đó (SIGNATURENET-6005)
- [Bug] Một DigitalSignOptions được tái sử dụng ký các bản trình chiếu sau bằng chứng chỉ và bình luận đầu tiên (SIGNATURENET-6006)
- [Enhancement] Cải tiến nội bộ (SIGNATURENET-5979)
Thay đổi API công cộng
| Thành viên | Thay đổi |
|---|---|
LoadOptions.SkipExternalResources |
Mới. bool, mặc định true. Khi true, tài nguyên bên ngoài không được tải, ngoại trừ những tài nguyên khớp với WhitelistedResources. |
LoadOptions.WhitelistedResources |
Mới. List<string>, mặc định rỗng. Các phần của địa chỉ có thể được tải khi SkipExternalResources là true. Một địa chỉ sẽ được tải khi chứa một trong các phần này, không phân biệt chữ hoa/thường. Đặt null sẽ xóa danh sách. |
LoadOptions.LoadExternalResources |
Lỗi thời. Vẫn hoạt động, nhưng có ý nghĩa ngược lại với SkipExternalResources. Mặc định của nó đã thay đổi từ true thành false. Sử dụng sẽ tạo cảnh báo biên dịch CS0618. |
SignatureFont chuyển đổi ngầm từ System.Drawing.Font |
Đã loại bỏ trong các bản dựng .NET 6, .NET 8 và .NET 10. Lỗi thời trong bản dựng .NET Framework. Thay vào đó, gán các thuộc tính của SignatureFont. |
SignOptions.HashAlgorithm |
Không thay đổi chữ ký. Giờ đây có hiệu lực cho chữ ký số PDF; trước đây, nó bị bỏ qua. |
DigitalVerifyOptions.SubjectName, DigitalVerifyOptions.IssuerName |
Không thay đổi chữ ký. Giờ đây có hiệu lực cho tài liệu PDF; trước đây, chúng bị bỏ qua. |
SignatureSettings.LogLevel |
Không thay đổi chữ ký. Giờ đây có hiệu lực: chỉ các thông điệp thuộc các mức được chỉ định mới tới logger, và LogLevel.None không ghi log gì. Trước đây, mọi thông điệp đều được ghi bất kể giá trị. Mô tả các giá trị LogLevel đã được chỉnh sửa. |
VerificationResult.Succeeded, VerificationResult.TotalSignatures |
Không thay đổi chữ ký. Khi một đối tượng VerifyOptions được dùng cho nhiều lời gọi Verify, chúng giờ chỉ liệt kê các chữ ký của tài liệu vừa được xác minh. |
DigitalSignOptions.AllowExpired |
Mới. bool, mặc định false. Khi false, ký bằng chứng chỉ đã hết hạn sẽ ném GroupDocsSignatureException. Khi true, tài liệu vẫn được ký và một cảnh báo sẽ được ghi log. |
DigitalSignOptions.AllowNotYetValid |
Mới. bool, mặc định false. Tương tự, nhưng áp dụng cho chứng chỉ chưa bắt đầu hiệu lực. |
Tính năng mới
Không có tính năng mới nào ngoài những mục đã liệt kê trong Những gì mới trong bản phát hành này và Thay đổi API công cộng.
Ví dụ mã
Chỉ cho phép tài nguyên bên ngoài đáng tin cậy:
LoadOptions loadOptions = new LoadOptions
{
WhitelistedResources = new List<string> { "https://cdn.example.com/images/" }
};
using (Signature signature = new Signature("sample.docx", loadOptions))
{
// Chỉ các hình ảnh từ https://cdn.example.com/images/ sẽ được tải.
}
Ký bằng SHA-384 và sử dụng chứng chỉ đã hết hạn (có cảnh báo):
using (Signature signature = new Signature("sample.pdf"))
{
DigitalSignOptions options = new DigitalSignOptions("certificate.pfx")
{
Password = "1234567890",
HashAlgorithm = HashAlgorithm.Sha384 // được tôn trọng từ bản phát hành này; mặc định là SHA-256
};
signature.Sign("signed.pdf", options);
}
Ký bằng chứng chỉ đã hết hạn được cho phép rõ ràng:
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);
// Nếu certificate.pfx đã hết hạn, tài liệu vẫn được ký và console sẽ hiển thị cảnh báo như:
// The signing certificate expired on 2019-05-01 12:00 UTC (subject "CN=...", thumbprint ...).
}
Ký tài liệu Word bằng chứng chỉ hậu lượng tử ML-DSA:
using (Signature signature = new Signature("sample.docx"))
{
DigitalSignOptions options = new DigitalSignOptions("ml-dsa-65.pfx")
{
Password = "1234567890"
};
signature.Sign("signed.docx", options);
}
Cấu hình ghi log để chỉ hiển thị lỗi và cảnh báo:
SignatureSettings settings = new SignatureSettings(new ConsoleLogger())
{
// Lỗi và cảnh báo, không có các dấu vết từng bước.
LogLevel = LogLevel.Error | LogLevel.Warning
};
Cách nhận bản cập nhật
NuGet
Nâng cấp lên gói GroupDocs.Signature mới nhất qua NuGet: GroupDocs.Signature 26.9.0
Lệnh cài đặt:
dotnet add package GroupDocs.Signature --version 26.9.0
Tải trực tiếp
Tải các assembly từ trang GroupDocs.Signature for .NET 26.9