Presentazioni protette da password in .NET

Panoramica

Una password di apertura crittografa una presentazione. La password corretta è necessaria per caricare e visualizzare il contenuto della presentazione, quindi questa protezione garantisce la riservatezza.

Una password di apertura è diversa da una password di protezione in scrittura. La protezione in scrittura limita la modifica ma non crittografa il contenuto né impedisce il caricamento della presentazione. Per gestire le password per la modifica delle presentazioni, vedere Write-Protect Presentations.

I flussi di lavoro seguenti si applicano sia alle presentazioni PPT che PPTX. Gli esempi utilizzano entrambi i formati quando è importante il loro comportamento basato su file o su stream.

Crittografa una presentazione con una password di apertura

Utilizzare IProtectionManager.Encrypt per assegnare una password di apertura. Quindi utilizzare IPresentation.Save per salvare la presentazione crittografata.

Il seguente esempio crittografa una presentazione 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);

Mantieni pubbliche le proprietà del documento

Per impostazione predefinita, Aspose.Slides include le proprietà del documento nella crittografia della presentazione. La proprietà IProtectionManager.EncryptDocumentProperties controlla questo comportamento in modo indipendente dalla crittografia del contenuto delle diapositive. Impostarla su false prima di chiamare IProtectionManager.Encrypt quando un sistema di indicizzazione, classificazione, ricerca o gestione dei documenti deve leggere i metadati senza la password di apertura.

Il seguente esempio crea una presentazione PPTX crittografata lasciando pubbliche le sue proprietà integrate del documento:

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

Impostare EncryptDocumentProperties su false non rende pubbliche diapositive, master, layout, forme, media o altri contenuti della presentazione. Influisce solo sulle proprietà del documento. Per leggere tali proprietà senza caricare il contenuto crittografato, vedere Manage Presentation Properties.

Carica una presentazione crittografata

Impostare LoadOptions.Password sulla password di apertura e passare le opzioni a Presentation durante il caricamento del file. Il caricamento fallisce quando è richiesta una password di apertura ma la password fornita è mancante o errata.

using Aspose.Slides;

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

// Lavora con la presentazione decrittata.

Rimuovi la crittografia da una presentazione

Caricare la presentazione con la sua password di apertura, chiamare IProtectionManager.RemoveEncryption e salvare il risultato. La presentazione salvata può quindi essere caricata senza una password.

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

Convalida una password di apertura prima del caricamento

Utilizzare IPresentationFactory.GetPresentationInfo per ottenere IPresentationInfo senza creare un’istanza completa della presentazione. Verificare IPresentationInfo.IsPasswordProtected prima di richiedere o convalidare una password. Quando la protezione è presente, convalidare il valore fornito con IPresentationInfo.CheckPassword.

Flusso di lavoro con percorso file

Il seguente esempio convalida una password di apertura per un file PPTX, passa il valore convalidato a LoadOptions.Password e quindi carica la presentazione completa:

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

Flusso di lavoro con stream

La sovraccarico basata su stream di IPresentationFactory.GetPresentationInfo fornisce lo stesso flusso di lavoro. Resettare la posizione di uno stream ricercabile prima di caricare la presentazione completa da quello stream.

Il seguente esempio utilizza un file 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.");
}

Valori di ritorno di CheckPassword

IPresentationInfo.CheckPassword restituisce true solo quando la presentazione ha una password di apertura e la password fornita è corretta. Restituisce false in ciascuno di questi casi:

  • La password è errata.
  • La presentazione non ha una password di apertura.
  • La password fornita è null o vuota.

Il comportamento è lo stesso per le presentazioni PPT e PPTX.

Verifica se una presentazione caricata è crittografata

Dopo aver caricato una presentazione con la password corretta, ispezionare IProtectionManager.IsEncrypted per confermare che la presentazione di origine fosse crittografata. Per rilevare la protezione con password di apertura prima del caricamento, utilizzare IPresentationInfo.IsPasswordProtected come mostrato sopra.

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

Raccomandazioni di sicurezza

Proteggi con password una presentazione online

  1. Aprire l’applicazione Aspose.Slides Lock.
  2. Selezionare o caricare la presentazione.
  3. Inserire una password per la protezione della visualizzazione.
  4. Facoltativamente inserire una password separata per la protezione della modifica.
  5. Applicare la protezione e scaricare il file risultante.

FAQ

Qual è la differenza tra una password di apertura e una password di protezione in scrittura?

Una password di apertura crittografa la presentazione ed è necessaria per caricare il suo contenuto. Una password di protezione in scrittura limita la modifica senza crittografare il contenuto.

Posso convalidare una password di apertura senza caricare tutte le diapositive?

Sì. Ottenere le informazioni sulla presentazione, verificare se è presente la protezione con password di apertura e convalidare la password prima di creare un’istanza completa della presentazione.

Un’applicazione può leggere i metadati senza la password di apertura?

Sì, ma solo quando la presentazione è stata crittografata con EncryptDocumentProperties impostato su false. L’applicazione deve quindi utilizzare la modalità di caricamento solo delle proprietà del documento descritta in Manage Presentation Properties.

I flussi di lavoro di verifica della password supportano sia PPT che PPTX?

Sì. Il rilevamento e la convalida della password basati su percorso file e su stream si comportano allo stesso modo per le presentazioni PPT e PPTX.