محافظت نوشتاری ارائه‌ها در جاوا اسکریپت

مقدمه

یک رمز عبور حفاظت نوشتاری اصلاح یک ارائه را محدود می‌کند اما محتوای آن را رمزنگاری نمی‌کند. کاربران می‌توانند یک ارائه محافظت‌شده در برابر نوشتار را بدون رمز عبور بارگذاری و مشاهده کنند. بسته به برنامه، ممکن است بتوانند محتوا را ویرایش کرده و تحت نام دیگری ذخیره کنند، بنابراین حفاظت نوشتاری نباید به عنوان مکانیزم محرمانگی در نظر گرفته شود.

یک رمز عبور باز کردن هدف متفاوتی دارد: ارائه را رمزنگاری می‌کند و برای بارگذاری محتوای آن لازم است. برای رمزنگاری یک ارائه یا اعتبارسنجی رمز عبور باز کردن، به محافظت از ارائه با رمز عبور مراجعه کنید.

روال‌های کاری در این مقاله برای ارائه‌های PPT و PPTX هر دو اعمال می‌شوند. مثال‌ها از فایل‌های PPTX استفاده می‌کنند؛ هنگام ذخیره به PPT، از پسوند .ppt و قالب ذخیره‌سازی PPT مربوطه استفاده کنید.

تنظیم حفاظت نوشتاری بر روی یک ارائه

برای اختصاص رمز عبور جهت اصلاح یک ارائه، از ProtectionManager.setWriteProtection استفاده کنید. ذخیرهٔ ارائه تنظیمات حفاظت را حفظ می‌کند.

مثال زیر حفاظت نوشتاری را بر روی یک ارائه PPTX تنظیم می‌کند:

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation("pres.pptx");
try {
    presentation.getProtectionManager().setWriteProtection("modify_password");
    presentation.save("write-protected-pres.pptx", slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

بارگذاری یک ارائه محافظت‌شده در برابر نوشتار

از آنجا که حفاظت نوشتاری محتوای ارائه را رمزنگاری نمی‌کند، برای بارگذاری ارائه نیازی به رمز عبور نیست. رمز عبور فقط در هنگام اعتبارسنجی مجوز اصلاح ارائهٔ محافظت‌شده مربوط می‌شود.

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation("write-protected-pres.pptx");
try {
    console.log("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

رمز عبور حفاظت نوشتاری را به LoadOptions.setPassword پاس ندهید. این متد یک رمز عبور باز کردن را برای محتوای رمزنگاری‌شده می‌پذیرد. اگر یک ارائه هر دو نوع حفاظت را داشته باشد، برای بارگذاری، رمز عبور باز کردن را ارائه دهید و رمز عبور حفاظت نوشتاری را به صورت جداگانه مدیریت کنید.

حذف حفاظت نوشتاری از یک ارائه

برای حذف محدودیت اصلاح، از ProtectionManager.removeWriteProtection استفاده کنید و سپس ارائه را ذخیره کنید.

const slides = require("aspose.slides.via.java");

const presentation = new slides.Presentation("write-protected-pres.pptx");
try {
    presentation.getProtectionManager().removeWriteProtection();
    presentation.save("write-protection-removed.pptx", slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

بررسی اینکه آیا یک ارائه محافظت نوشتاری دارد یا نه

برای بررسی یک فایل بدون ایجاد یک نمونهٔ کامل از Presentation، متد PresentationFactory.getPresentationInfo را صدا بزنید و سپس PresentationInfo.isWriteProtected را بررسی کنید. این متد از NullableBool استفاده می‌کند و هنگام شناسایی حفاظت نوشتاری، NullableBool.True را برمی‌گرداند.

const slides = require("aspose.slides.via.java");

const presentationInfo = slides.PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.isWriteProtected() === slides.NullableBool.True) {
    console.log("The presentation is write protected.");
} else {
    console.log("Write protection was not detected.");
}

متد مبتنی بر جریان PresentationFactory.getPresentationInfoFromStream همان اطلاعات را برای ارائه‌ای که به صورت جریان قابل خواندن Node.js ارائه می‌شود، فراهم می‌کند.

اعتبارسنجی رمز عبور حفاظت نوشتاری

برای اعتبارسنجی رمز عبور اصلاح بدون بارگذاری کل ارائه، از PresentationInfo.checkWriteProtection استفاده کنید. ابتدا PresentationInfo.isWriteProtected را بررسی کنید تا برنامه فقط در زمانی که حفاظت نوشتاری وجود دارد، رمز عبور را درخواست یا اعتبارسنجی کند.

const slides = require("aspose.slides.via.java");

const presentationInfo = slides.PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.isWriteProtected() !== slides.NullableBool.True) {
    console.log("The presentation is not write protected.");
} else if (presentationInfo.checkWriteProtection("modify_password")) {
    console.log("The write-protection password is correct.");
} else {
    console.log("The write-protection password is incorrect.");
}

PresentationInfo.checkWriteProtection تنها رمز عبور حفاظت نوشتاری را اعتبارسنجی می‌کند. این متد رمز عبور باز کردن یا تعیین امکان بارگذاری محتوای رمزنگاری‌شده را اعتبارسنجی نمی‌کند. برعکس، PresentationInfo.checkPassword فقط یک رمز عبور باز کردن را اعتبارسنجی می‌کند. اگر یک ارائهٔ کامل قبلاً بارگذاری شده باشد، ProtectionManager.checkWriteProtection بررسی حفاظت نوشتاری معادل را از طریق مدیر حفاظت خود فراهم می‌آورد.

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

سوالات متداول

آیا حفاظت نوشتاری یک ارائه را رمزنگاری می‌کند؟

خیر. این ویژگی اصلاح را محدود می‌کند اما محتوای ارائه برای بارگذاری و مشاهده در دسترس می‌ماند.

آیا رمز عبور حفاظت نوشتاری برای باز کردن یک ارائه لازم است؟

خیر. تنها یک رمز عبور باز کردن برای بارگذاری محتوای ارائهٔ رمزنگاری‌شده لازم است.

آیا یک ارائه می‌تواند همزمان یک رمز عبور باز کردن و یک رمز عبور حفاظت نوشتاری داشته باشد؟

بله. رمز عبور باز کردن را از طریق گزینه‌های بارگذاری برای باز کردن ارائهٔ رمزنگاری‌شده ارائه دهید و هنگام نیاز به مجوز اصلاح، رمز عبور حفاظت نوشتاری را به طور جداگانه اعتبارسنجی کنید.