خوشحالیم که GroupDocs.Annotation for .NET 26.10 را که در اکتبر 2026 منتشر شد، اعلام کنیم. این نسخه با تمرکز بر امنیت است: اسناد دیگر به‌صورت خودکار تصاویر، استایل‌شیت‌ها یا فایل‌های لینک‌شده از راه دور را بارگذاری نمی‌کنند و اعضای جدید LoadOptions به شما امکان می‌دهند دقیقاً تعیین کنید چه چیزی می‌تواند بارگذاری شود. این نسخه همچنین موتورهای اسناد زیرساختی را به‌روز می‌کند، یک وابستگی آسیب‌پذیر را به‌روزرسانی می‌کند و چندین مشکل را رفع می‌کند.

چه چیزهای جدیدی در این نسخه وجود دارد

کلید دسته‌بندی خلاصه
ANNOTATIONNET-2663 ⚠️ بهبود منابع خارجی به‌صورت پیش‌فرض دیگر بارگذاری نمی‌شوند (کنترل‌های جدید LoadOptions)
ANNOTATIONNET-2687 ✨ بهبود به‌روزرسانی موتورهای سند زیرساختی
ANNOTATIONNET-2672 🔒 امنیت به‌روزرسانی System.Security.Cryptography.Pkcs به 8.0.2 (CVE-2026-84008 / CVE-2026-70162)
ANNOTATIONNET-2102 🔧 رفع رفع FileTypeNotSupportedException هنگام استخراج حاشیه‌نویسی‌ها از اسناد EML
ANNOTATIONNET-1903 🔧 رفع رفع عدم باز شدن اسنادی که توسط نسخه‌های قدیمی حاشیه‌نویسی شده‌اند در .NET 8
ANNOTATIONNET-2689 🔧 رفع رفع از دست رفتن چرخش صفحه PDF به‌صورت 90 درجه هنگام ذخیره

منابع خارجی به‌صورت پیش‌فرض دیگر بارگذاری نمی‌شوند

یک سند می‌تواند به منابعی خارج از خود ارجاع دهد: یک <img src="https://..."> در صفحه HTML یا بدنه ایمیل، یک تصویر لینک‌شده در سند Word، یک استایل‌شیت راه دور یا یک لینک کتاب‌کار خارجی. تا به‌حال، باز کردن، پیش‌نمایش یا ذخیره چنین سندی باعث می‌شد GroupDocs.Annotation آن منابع را از شبکه یا یک اشتراک فایل درخواست کند.

در سروری که اسناد غیرقابل اعتماد را پردازش می‌کند، این یک خطر سرقت درخواست سمت سرور (SSRF) است: یک سند می‌تواند سرور را به تماس با آدرس‌های داخلی وادار کند و مسیر UNC می‌تواند اعتبارهای ویندوزی فرآیند را فاش کند.

از نسخه 26.10 به‌بعد، منابع خارجی به‌صورت پیش‌فرض نادیده گرفته می‌شوند برای اسناد پردازش‌متن، HTML، ایمیل، ارائه و صفحه‌گسترده:

  • بدون درخواست. هیچ درخواست شبکه یا اشتراک فایل برای منابع ارجاع‌شده توسط سند در هیچ عملی انجام نمی‌شود: Get، Add، Save، GeneratePreview و GetDocumentInfo.
  • محافظه‌کارهای خالی. تصویری که نادیده گرفته شده به‌صورت یک جای‌گیر شفاف رندر می‌شود و لینک اصلی در سند ذخیره‌شده حفظ می‌شود.
  • محتوای جاسازی‌شده همچنان کار می‌کند. بخش‌های cid: ایمیل، URIهای data: و تصاویر جاسازی‌شده همیشه بارگذاری می‌شوند.
  • حاشیه‌نویسی‌های تصویری تحت تأثیر قرار نمی‌گیرند. ImageAnnotation.ImagePath همچنان از یک URL بارگذاری می‌شود.

این یک تغییر رفتار است. اگر اسناد شما به رندر تصاویر یا استایل‌شیت‌های راه دور وابسته هستند، به‌صورت صریح با اعضای جدید LoadOptions آن‌ها را اجازه دهید:

عضو پیش‌فرض توضیح
SkipExternalResources true منابع خارجی را نادیده می‌گیرد. برای بازگرداندن رفتار پیش از نسخه 26.10 آن را به false تنظیم کنید.
WhitelistedResources empty نام‌های میزبان یا پیشوندهای URI مطلق که حتی هنگام نادیده گرفتن منابع بارگذاری می‌شوند.
ExternalResourceHandler null برای هر منبع خارجی فراخوانی می‌شود؛ می‌تواند آن را اجازه دهد، نادیده بگیرد یا محتوای آن را فراهم کند.

فقط میزبان‌های مورد اعتماد را اجازه دهید (پیشنهاد شده):

LoadOptions loadOptions = new LoadOptions
{
    // SkipExternalResources stays true (the default)
    WhitelistedResources = { "cdn.example.com", "https://intranet.example.com/images/" }
};

using (Annotator annotator = new Annotator("input.html", loadOptions))
{
    annotator.Save("output.html"); // only images from the two whitelisted locations are loaded
}

هر منبع را با یک هندلر بررسی، اجازه یا جایگزین کنید:

class AuditingResourceHandler : ExternalResourceHandler
{
    public override void OnLoading(ExternalResourceLoadingArgs args)
    {
        Console.WriteLine($"{args.Uri}: {(args.Skipped ? "skipped" : "loaded")}");

        // serve a local copy instead of going to the network
        if (args.Uri == "https://example.com/logo.png")
            args.Data = File.ReadAllBytes("logo.png");
    }
}

به‌روزرسانی موتورهای سند

موتورهای پردازش‌متن، صفحه‌گسترده، ارائه، PDF، دیاگرام، ایمیل، تصویرسازی، CAD و رندر گرافیک بسته‌بندی‌شده به نسخه‌های اکتبر 2026 به‌روزرسانی شدند. اسناد بازسازی‌شده و پیش‌نمایش‌های صفحه ممکن است در سطح بایت یا پیکسل کمی متفاوت باشند در حالی که از نظر بصری معادل باقی می‌مانند.

برای پروژه‌های .NET 6 و .NET 8، بسته‌های زمان اجرا اکنون به SkiaSharp 4.152.1 وابسته هستند. اگر پروژه شما به‌صورت مستقیم به SkiaSharp 3.x ارجاع می‌دهد، آن را به 4.x به‌روزرسانی کنید.

به‌روزرسانی امنیتی

موتورهای سند System.Security.Cryptography.Pkcs نسخه 8.0.0 یا 8.0.1 را وارد می‌کنند که تحت تأثیر CVE-2026-84008 و CVE-2026-70162 هستند. GroupDocs.Annotation اکنون در هر چارچوب هدف به نسخه اصلاح‌شده 8.0.2 ارجاع می‌دهد. نیازی به تغییر کد نیست.

رفع مشکلات

  • EML از یک جریان. یک پیام EML که با MIME-Version: 1.0 شروع می‌شود به‌عنوان آرشیو MHT شناسایی می‌شد و باز کردن آن از یک جریان باعث پرتاب FileTypeNotSupportedException می‌شد. چنین پیام‌هایی اکنون به‌صورت یکسان از جریان و از فایل باز می‌شوند و فایل‌های MHT اکنون به‌عنوان اسناد ایمیل پشتیبانی می‌شوند.
  • اسناد قدیمی در .NET 8. اسنادی که توسط نسخه‌های قبل از 26.6 حاشیه‌نویسی شده بودند، در .NET 8 با NotSupportedException باز نمی‌شدند. اکنون باز می‌شوند: حاشیه‌نویسی‌های قدیمی با هشدار لاگ نادیده گرفته می‌شوند و حاشیه‌نویسی‌های جدید می‌توانند اضافه و ذخیره شوند. مشکلی مرتبط با ارائه‌های دوباره ذخیره‌شده (PPTX) که حاشیه‌نویسی‌هایشان قابل خواندن نبود، در تمام چارچوب‌ها رفع شد.
  • چرخش PDF به‌صورت 90 درجه. چرخش یک صفحه PDF با Annotator.Rotation برای 180 و 270 درجه کار می‌کرد، اما چرخش 90 درجه در زمان ذخیره از دست می‌رفت. اکنون برای هر زاویه‌ای حفظ می‌شود:
using (Annotator annotator = new Annotator("input.pdf"))
{
    annotator.ProcessPages = 1;                 // the page to rotate
    annotator.Rotation = RotationDocument.on90; // previously ignored
    annotator.Save("output.pdf");
}

تغییرات API عمومی

این نسخه اعضای زیر را اضافه می‌کند:

هیچ عضو عمومی حذف یا تغییر نیافته است.

نحوه دریافت به‌روزرسانی

NuGet

پکیج یا به‌روزرسانی به GroupDocs.Annotation 26.10.0 را با استفاده از NuGet نصب کنید. این پکیج به‌صورت خودکار بسته زمان اجرا را برای چارچوب هدف شما (.NET Framework 4.6.2، .NET 6 یا .NET 8) حل می‌کند:

dotnet add package GroupDocs.Annotation --version 26.10.0

دانلود مستقیم

نسخه را از صفحه GroupDocs.Annotation for .NET 26.10 دانلود کنید.

منابع