ปกป้องงานนำเสนอด้วยรหัสผ่านใน .NET

ภาพรวม

รหัสผ่านสำหรับการเปิดใช้งานจะทำการเข้ารหัสงานนำเสนอ จำเป็นต้องใช้รหัสผ่านที่ถูกต้องเพื่อโหลดและดูเนื้อหาของงานนำเสนอ ดังนั้นการป้องกันนี้จึงให้ความลับ

รหัสผ่านสำหรับการเปิดใช้งานแตกต่างจากรหัสผ่านป้องกันการเขียน การป้องกันการเขียนจำกัดการแก้ไขแต่ไม่ได้เข้ารหัสเนื้อหา หรือป้องกันการโหลดงานนำเสนอ เพื่อจัดการรหัสผ่านสำหรับการแก้ไขงานนำเสนอ ดูที่ Write-Protect Presentations.

กระบวนการทำงานด้านล่างนี้ใช้ได้กับงานนำเสนอทั้งแบบ PPT และ PPTX ตัวอย่างใช้ทั้งสองรูปแบบเมื่อพฤติกรรมแบบไฟล์และสตรีมมีความสำคัญ

เข้ารหัสงานนำเสนอด้วยรหัสผ่านเปิดใช้งาน

ใช้ IProtectionManager.Encrypt เพื่อกำหนดรหัสผ่านเปิดใช้งาน จากนั้นใช้ IPresentation.Save เพื่อบันทึกงานนำเสนอที่เข้ารหัสไว้

ตัวอย่างต่อไปนี้ทำการเข้ารหัสงานนำเสนอ PPTX:

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

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

presentation.ProtectionManager.Encrypt("open_password");
presentation.Save("encrypted-pres.pptx", SaveFormat.Pptx);

ทำให้คุณสมบัติเอกสารเป็นสาธารณะ

โดยค่าเริ่มต้น Aspose.Slides จะรวมคุณสมบัติเอกสารในการเข้ารหัสงานนำเสนอ คุณสมบัติ IProtectionManager.EncryptDocumentProperties ควบคุมพฤติกรรมนี้โดยแยกจากการเข้ารหัสเนื้อหาสไลด์ ตั้งค่าเป็น false ก่อนเรียกใช้ IProtectionManager.Encrypt เมื่อระบบจัดทำดัชนี การจำแนก การค้นหา หรือการจัดการเอกสารต้องอ่านเมตาดาต้าโดยไม่ต้องใช้รหัสผ่านเปิดใช้งาน

ตัวอย่างต่อไปนี้สร้างงานนำเสนอ PPTX ที่เข้ารหัสโดยยังคงคุณสมบัติเอกสารในตัวเป็นสาธารณะ:

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

using var presentation = new Presentation();

var properties = presentation.DocumentProperties;
properties.Author = "Contoso Knowledge Management";
properties.Title = "Quarterly Product Roadmap";
properties.Keywords = "roadmap, planning, internal";

presentation.Slides[0].Name = "Encrypted presentation content";
presentation.ProtectionManager.EncryptDocumentProperties = false;
presentation.ProtectionManager.Encrypt("open_password");
presentation.Save("public-properties-encrypted.pptx", SaveFormat.Pptx);

การตั้งค่า EncryptDocumentProperties เป็น false ไม่ได้ทำให้สไลด์ มาสเตอร์ เลย์เอาต์ รูปร่าง สื่อ หรือเนื้อหางานนำเสนออื่น ๆ เป็นสาธารณะ มันมีผลเฉพาะกับคุณสมบัติเอกสารเท่านั้น หากต้องการอ่านคุณสมบัติเหล่านั้นโดยไม่ต้องโหลดเนื้อหาที่เข้ารหัส ให้ดูที่ Manage Presentation Properties.

โหลดงานนำเสนอที่เข้ารหัส

ตั้งค่า LoadOptions.Password เป็นรหัสผ่านเปิดใช้งานและส่งตัวเลือกไปยัง Presentation เมื่อโหลดไฟล์ หากรหัสผ่านเปิดใช้งานจำเป็นแต่ไม่ได้ระบุหรือระบุไม่ถูกต้อง การโหลดจะล้มเหลว

using Aspose.Slides;

var loadOptions = new LoadOptions { Password = "open_password" };
using var presentation = new Presentation("encrypted-pres.pptx", loadOptions);

// ทำงานกับงานนำเสนอที่ถอดรหัสแล้ว.

ลบการเข้ารหัสออกจากงานนำเสนอ

โหลดงานนำเสนอพร้อมรหัสผ่านเปิดใช้งาน เรียกใช้ IProtectionManager.RemoveEncryption แล้วบันทึกผลงาน งานนำเสนอที่บันทึกแล้วสามารถโหลดได้โดยไม่ต้องใช้รหัสผ่าน

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

var loadOptions = new LoadOptions { Password = "open_password" };
using var presentation = new Presentation("encrypted-pres.pptx", loadOptions);

presentation.ProtectionManager.RemoveEncryption();
presentation.Save("encryption-removed.pptx", SaveFormat.Pptx);

ตรวจสอบรหัสผ่านเปิดใช้งานก่อนการโหลด

ใช้ IPresentationFactory.GetPresentationInfo เพื่อดึง IPresentationInfo โดยไม่ต้องสร้างอินสแตนซ์งานนำเสนอเต็มรูปแบบ ตรวจสอบ IPresentationInfo.IsPasswordProtected ก่อนขอหรือยืนยันรหัสผ่าน เมื่อมีการป้องกัน ให้ยืนยันค่าที่ระบุด้วย IPresentationInfo.CheckPassword.

กระบวนการทำงานแบบไฟล์พาธ

ตัวอย่างต่อไปนี้ทำการตรวจสอบรหัสผ่านเปิดใช้งานสำหรับไฟล์ PPTX ส่งค่าที่ตรวจสอบแล้วไปยัง LoadOptions.Password แล้วโหลดงานนำเสนอเต็มรูปแบบ:

using System;
using Aspose.Slides;

var filePath = "protected-presentation.pptx";
var password = "open_password";
var presentationInfo = PresentationFactory.Instance.GetPresentationInfo(filePath);

if (!presentationInfo.IsPasswordProtected)
{
    Console.WriteLine("The presentation does not have an opening password.");
}
else if (!presentationInfo.CheckPassword(password))
{
    Console.WriteLine("The opening password is incorrect.");
}
else
{
    var loadOptions = new LoadOptions { Password = password };
    using var presentation = new Presentation(filePath, loadOptions);

    Console.WriteLine("The presentation was validated and loaded successfully.");
}

กระบวนการทำงานแบบสตรีม

อิ่มโหลดแบบสตรีมของ IPresentationFactory.GetPresentationInfo ให้กระบวนการทำงานเดียวกัน รีเซ็ตตำแหน่งของสตรีมที่สามารถเลื่อนได้ก่อนโหลดงานนำเสนอเต็มรูปแบบจากสตรีมนั้น

ตัวอย่างต่อไปนี้ใช้ไฟล์ PPT:

using System;
using System.IO;
using Aspose.Slides;

var password = "open_password";
using var presentationStream = File.OpenRead("protected-presentation.ppt");
var presentationInfo = PresentationFactory.Instance.GetPresentationInfo(presentationStream);

if (!presentationInfo.IsPasswordProtected)
{
    Console.WriteLine("The presentation does not have an opening password.");
}
else if (!presentationInfo.CheckPassword(password))
{
    Console.WriteLine("The opening password is incorrect.");
}
else
{
    presentationStream.Position = 0;

    var loadOptions = new LoadOptions { Password = password };
    using var presentation = new Presentation(presentationStream, loadOptions);

    Console.WriteLine("The presentation was validated and loaded successfully.");
}

ค่าที่ส่งกลับของ CheckPassword

IPresentationInfo.CheckPassword จะคืนค่า true เฉพาะเมื่องานนำเสนอมีรหัสผ่านเปิดใช้งานและรหัสผ่านที่ให้มาถูกต้อง จะคืนค่า false ในแต่ละกรณีต่อไปนี้:

  • รหัสผ่านไม่ถูกต้อง.
  • งานนำเสนอไม่มีรหัสผ่านเปิดใช้งาน.
  • รหัสผ่านที่ให้เป็น null หรือว่าง.

พฤติกรรมนี้เหมือนกันสำหรับงานนำเสนอ PPT และ PPTX

ตรวจสอบว่างานนำเสนอที่โหลดแล้วถูกเข้ารหัสหรือไม่

หลังจากโหลดงานนำเสนอด้วยรหัสผ่านที่ถูกต้อง ให้ตรวจสอบ IProtectionManager.IsEncrypted เพื่อยืนยันว่างานนำแหล่งที่มาถูกเข้ารหัส เพื่อค้นหาการป้องกันด้วยรหัสผ่านเปิดใช้งานก่อนการโหลด ให้ใช้ IPresentationInfo.IsPasswordProtected ตามที่แสดงข้างต้น

using System;
using Aspose.Slides;

var loadOptions = new LoadOptions { Password = "open_password" };
using var presentation = new Presentation("encrypted-pres.pptx", loadOptions);

var isEncrypted = presentation.ProtectionManager.IsEncrypted;
Console.WriteLine("The presentation is encrypted: " + isEncrypted);

คำแนะนำด้านความปลอดภัย

ปกป้องรหัสผ่านงานนำเสนอออนไลน์

  1. เปิดแอปพลิเคชัน Aspose.Slides Lock
  2. เลือกหรืออัปโหลดงานนำเสนอ
  3. ป้อนรหัสผ่านสำหรับการป้องกันการดู
  4. หากต้องการ สามารถป้อนรหัสผ่านแยกต่างหากสำหรับการป้องกันการแก้ไข
  5. ใช้การป้องกันและดาวน์โหลดไฟล์ที่ได้

FAQ

รหัสผ่านเปิดใช้งานกับรหัสผ่านป้องกันการเขียนแตกต่างกันอย่างไร?

รหัสผ่านเปิดใช้งานจะเข้ารหัสงานนำเสนอและจำเป็นต้องใช้เพื่อโหลดเนื้อหา ส่วนรหัสผ่านป้องกันการเขียนจะจำกัดการแก้ไขโดยไม่เข้ารหัสเนื้อหา

ฉันสามารถตรวจสอบรหัสผ่านเปิดใช้งานโดยไม่ต้องโหลดสไลด์ทั้งหมดได้หรือไม่?

ได้ การดึงข้อมูลงานนำเสนอ ตรวจสอบว่ามีการป้องกันด้วยรหัสผ่านเปิดใช้งานหรือไม่ และตรวจสอบรหัสผ่านก่อนสร้างอินสแตนซ์งานนำเสนอเต็มรูปแบบ

แอปพลิเคชันสามารถอ่านเมตาดาต้าโดยไม่ต้องใช้รหัสผ่านเปิดใช้งานได้หรือไม่?

ได้ แต่เฉพาะเมื่อการเข้ารหัสงานนำเสนอทำด้วย EncryptDocumentProperties ตั้งเป็น false แอปพลิเคชันต้องใช้โหมดการโหลดเฉพาะคุณสมบัติเอกสารที่อธิบายไว้ใน Manage Presentation Properties.

กระบวนการตรวจสอบรหัสผ่านรองรับทั้ง PPT และ PPTX หรือไม่?

ใช่ กระบวนการตรวจจับและตรวจสอบรหัสผ่านแบบไฟล์พาธและสตรีมทำงานเช่นเดียวกันสำหรับงานนำเสนอ PPT และ PPTX