Ochrana prezentací heslem v .NET

Přehled

Otevírací heslo šifruje prezentaci. Správné heslo je vyžadováno pro načtení a zobrazení obsahu prezentace, takže tato ochrana poskytuje důvěrnost.

Otevírací heslo se liší od hesla pro ochranu proti zápisu. Ochrana proti zápisu omezuje úpravy, ale nešifruje obsah ani nebrání načtení prezentace. Pro správu hesel pro úpravu prezentací viz Zapisovat ochranu prezentací.

Níže uvedené pracovní postupy platí pro prezentace PPT i PPTX. Příklady používají oba formáty, kde je důležité chování založené na souborech i na streamu.

Šifrování prezentace otevíracím heslem

Pomocí IProtectionManager.Encrypt přiřadíte otevírací heslo. Poté použijte IPresentation.Save k uložení šifrované prezentace.

Následující příklad šifruje PPTX prezentaci:

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);

Nechat dokumentové vlastnosti veřejné

Ve výchozím nastavení Aspose.Slides zahrnuje dokumentové vlastnosti do šifrování prezentace. Vlastnost IProtectionManager.EncryptDocumentProperties řídí toto chování nezávisle na šifrování obsahu snímků. Před voláním IProtectionManager.Encrypt ji nastavte na false, pokud systém pro indexování, klasifikaci, vyhledávání nebo správu dokumentů musí číst metadata bez otevíracího hesla.

Následující příklad vytváří šifrovanou PPTX prezentaci a přitom ponechává její vestavěné dokumentové vlastnosti veřejné:

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);

Nastavení EncryptDocumentProperties na false neznamená, že slajdy, masterové, rozvržení, tvary, média nebo jiný obsah prezentace jsou veřejné. Ovlivňuje pouze dokumentové vlastnosti. Pro čtení těchto vlastností bez načítání šifrovaného obsahu viz Správa vlastností prezentace.

Načtení šifrované prezentace

Nastavte LoadOptions.Password na otevírací heslo a předávejte možnosti do Presentation při načítání souboru. Načtení selže, pokud je požadováno otevírací heslo, ale zadané heslo chybí nebo je nesprávné.

using Aspose.Slides;

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

// Pracujte s dešifrovanou prezentací.

Odstranění šifrování z prezentace

Načtěte prezentaci s jejím otevíracím heslem, zavolejte IProtectionManager.RemoveEncryption a uložte výsledek. Uložená prezentace pak může být načtena bez hesla.

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);

Ověření otevíracího hesla před načtením

Pomocí IPresentationFactory.GetPresentationInfo získáte IPresentationInfo bez vytvoření úplné instance prezentace. Před požádáním o heslo nebo jeho ověřením zkontrolujte IPresentationInfo.IsPasswordProtected. Pokud je ochrana přítomna, ověřte zadanou hodnotu metodou IPresentationInfo.CheckPassword.

Workflow se souborovou cestou

Následující příklad ověří otevírací heslo pro soubor PPTX, předá ověřenou hodnotu do LoadOptions.Password a poté načte úplnou prezentaci:

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.");
}

Workflow se streamem

Přetížení pro stream metody IPresentationFactory.GetPresentationInfo poskytuje stejný workflow. Před načtením úplné prezentace ze streamu nastavte pozici vyhledávatelného streamu na začátek.

Následující příklad používá soubor 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.");
}

Návratové hodnoty CheckPassword

IPresentationInfo.CheckPassword vrací true pouze tehdy, když má prezentace otevírací heslo a zadané heslo je správné. Vrací false v každém z následujících případů:

  • Heslo je nesprávné.
  • Prezentace nemá otevírací heslo.
  • Zadané heslo je null nebo prázdné.

Chování je stejné pro prezentace PPT i PPTX.

Zkontrolujte, zda je načtená prezentace šifrována

Po načtení prezentace se správným heslem zkontrolujte IProtectionManager.IsEncrypted, abyste potvrdili, že zdrojová prezentace byla šifrována. Pro detekci ochrany otevíracím heslem před načtením použijte IPresentationInfo.IsPasswordProtected, jak je uvedeno výše.

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);

Doporučení pro zabezpečení

Ochrana prezentace heslem online

  1. Otevřete aplikaci Aspose.Slides Lock.
  2. Vyberte nebo nahrajte prezentaci.
  3. Zadejte heslo pro ochranu prohlížením.
  4. Volitelně zadejte samostatné heslo pro ochranu úprav.
  5. Použijte ochranu a stáhněte vzniklý soubor.

Často kladené otázky

Jaký je rozdíl mezi otevíracím heslem a heslem pro ochranu proti zápisu?

Otevírací heslo šifruje prezentaci a je vyžadováno pro načtení jejího obsahu. Heslo pro ochranu proti zápisu omezuje úpravy, aniž by šifrovalo obsah.

Mohu ověřit otevírací heslo, aniž načtu všechny snímky?

Ano. Získejte informace o prezentaci, ověřte, zda je přítomna ochrana otevíracím heslem, a ověřte heslo před vytvořením úplné instance prezentace.

Může aplikace číst metadata bez otevíracího hesla?

Ano, ale jen pokud byla prezentace šifrována s nastavením EncryptDocumentProperties na false. Aplikace pak musí použít režim načítání jen dokumentových vlastností popsaný v Správa vlastností prezentace.

Podporují pracovní postupy ověřování hesla jak PPT, tak PPTX?

Ano. Detekce a ověřování hesla založené na souborové cestě i na streamu se chovají stejně pro prezentace PPT i PPTX.