Proteksi Penulisan Presentasi di .NET

Introduction

Kata sandi proteksi penulisan membatasi modifikasi presentasi tetapi tidak mengenkripsi isinya. Pengguna dapat memuat dan melihat presentasi yang dilindungi penulisan tanpa kata sandi. Tergantung pada aplikasi, mereka juga dapat mengedit konten dan menyimpannya dengan nama yang berbeda, sehingga proteksi penulisan tidak boleh dianggap sebagai mekanisme kerahasiaan.

Kata sandi pembuka memiliki tujuan yang berbeda: ia mengenkripsi presentasi dan diperlukan untuk memuat isinya. Untuk mengenkripsi presentasi atau memvalidasi kata sandi pembuka, lihat Password-Protect Presentations.

Alur kerja dalam artikel ini berlaku untuk presentasi PPT dan PPTX. Contoh menggunakan file PPTX; saat menyimpan ke PPT, gunakan ekstensi .ppt dan format penyimpanan PPT yang bersesuaian.

Mengatur Proteksi Penulisan pada Presentasi

Gunakan IProtectionManager.SetWriteProtection untuk menetapkan kata sandi yang mengizinkan modifikasi presentasi. Menyimpan presentasi akan mempertahankan pengaturan proteksi.

Contoh berikut mengatur proteksi penulisan pada presentasi PPTX:

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("pres.pptx");

presentation.ProtectionManager.SetWriteProtection("modify_password");
presentation.Save("write-protected-pres.pptx", SaveFormat.Pptx);

Muat Presentasi yang Dilindungi Penulisan

Karena proteksi penulisan tidak mengenkripsi konten presentasi, tidak diperlukan kata sandi untuk memuat presentasi. Kata sandi hanya relevan saat memvalidasi otorisasi untuk memodifikasi presentasi yang dilindungi.

using System;
using Aspose.Slides;

using var presentation = new Presentation("write-protected-pres.pptx");

Console.WriteLine("Slide count: " + presentation.Slides.Count);

Jangan memberi kata sandi proteksi penulisan ke LoadOptions.Password. Properti tersebut menerima kata sandi pembuka untuk konten yang terenkripsi. Jika sebuah presentasi memiliki kedua jenis proteksi, berikan kata sandi pembuka untuk memuatnya dan tangani kata sandi proteksi penulisan secara terpisah.

Menghapus Proteksi Penulisan dari Presentasi

Gunakan IProtectionManager.RemoveWriteProtection untuk menghapus pembatasan modifikasi, lalu simpan presentasi.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("write-protected-pres.pptx");

presentation.ProtectionManager.RemoveWriteProtection();
presentation.Save("write-protection-removed.pptx", SaveFormat.Pptx);

Memeriksa Apakah Presentasi Dilindungi Penulisan

Untuk memeriksa file tanpa membuat instance Presentation lengkap, panggil IPresentationFactory.GetPresentationInfo dan periksa IPresentationInfo.IsWriteProtected. Properti tersebut menggunakan NullableBool dan mengembalikan NullableBool.True ketika proteksi penulisan terdeteksi.

using System;
using Aspose.Slides;

var presentationInfo = PresentationFactory.Instance.GetPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.IsWriteProtected == NullableBool.True)
{
    Console.WriteLine("The presentation is write protected.");
}
else
{
    Console.WriteLine("Write protection was not detected.");
}

Overload stream dari IPresentationFactory.GetPresentationInfo memberikan informasi yang sama untuk presentasi yang disediakan sebagai aliran.

Memvalidasi Kata Sandi Proteksi Penulisan

Gunakan IPresentationInfo.CheckWriteProtection untuk memvalidasi kata sandi modifikasi tanpa memuat presentasi lengkap. Periksa IPresentationInfo.IsWriteProtected terlebih dahulu sehingga aplikasi meminta atau memvalidasi kata sandi hanya ketika proteksi penulisan ada.

using System;
using Aspose.Slides;

var presentationInfo = PresentationFactory.Instance.GetPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.IsWriteProtected != NullableBool.True)
{
    Console.WriteLine("The presentation is not write protected.");
}
else if (presentationInfo.CheckWriteProtection("modify_password"))
{
    Console.WriteLine("The write-protection password is correct.");
}
else
{
    Console.WriteLine("The write-protection password is incorrect.");
}

IPresentationInfo.CheckWriteProtection memvalidasi hanya kata sandi proteksi penulisan. Ia tidak memvalidasi kata sandi pembuka atau menentukan apakah konten terenkripsi dapat dimuat. Sebaliknya, IPresentationInfo.CheckPassword memvalidasi hanya kata sandi pembuka. Jika sebuah presentasi lengkap sudah dimuat, IProtectionManager.CheckWriteProtection menyediakan pemeriksaan proteksi penulisan yang setara melalui manajer proteksinya.

Dalam aplikasi produksi, jangan mencatat kata sandi atau menyertakannya dalam pesan diagnostik. Hindari upaya validasi berulang yang tidak diperlukan, dan simpan kata sandi dalam memori hanya selama diperlukan.

FAQ

Apakah proteksi penulisan mengenkripsi presentasi?

Tidak. Ini membatasi modifikasi tetapi tetap membuat konten presentasi tersedia untuk dimuat dan dilihat.

Apakah kata sandi proteksi penulisan diperlukan untuk membuka presentasi?

Tidak. Hanya kata sandi pembuka yang diperlukan untuk memuat konten presentasi yang terenkripsi.

Apakah sebuah presentasi dapat memiliki sekaligus kata sandi pembuka dan kata sandi proteksi penulisan?

Ya. Berikan kata sandi pembuka melalui opsi pemuatan untuk membuka presentasi yang terenkripsi, dan validasi kata sandi proteksi penulisan secara terpisah ketika otorisasi modifikasi diperlukan.