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
nullnebo 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í
Zabezpečení
Nezaznamenávejte otevírací hesla ani je nezahrnujte do diagnostických zpráv. Vyhněte se zbytečným opakovaným pokusům o ověření, uchovávejte hesla v paměti jen po nezbytně nutnou dobu a opakovaně použijte úspěšný výsledek ověření při okamžitém načtení prezentace.
Veřejné dokumentové vlastnosti mohou odhalit jména autorů, názvy, předměty, klíčová slova, informace o společnosti, komentáře a vlastní hodnoty, i když je obsah prezentace šifrován. Šifrujte citlivá metadata společně s prezentací. Nechat vlastnosti veřejné by mělo být explicitním rozhodnutím, učiněným jen když systémy musí indexovat, klasifikovat, vyhledávat nebo spravovat soubor bez otevíracího hesla.
Ochrana prezentace heslem online
- Otevřete aplikaci Aspose.Slides Lock.
- Vyberte nebo nahrajte prezentaci.
- Zadejte heslo pro ochranu prohlížením.
- Volitelně zadejte samostatné heslo pro ochranu úprav.
- 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.