Write‑protect presentaties op Android

Inleiding

Een write‑protection‑wachtwoord beperkt het wijzigen van een presentatie, maar versleutelt de inhoud niet. Gebruikers kunnen een write‑protected presentatie laden en bekijken zonder het wachtwoord. Afhankelijk van de applicatie kunnen ze ook de inhoud bewerken en opslaan onder een andere naam, dus write‑protection mag niet worden beschouwd als een vertrouwelijkheidsmechanisme.

Een opening‑wachtwoord dient een ander doel: het versleutelt de presentatie en is vereist om de inhoud te laden. Om een presentatie te versleutelen of een opening‑wachtwoord te valideren, zie Password-Protect Presentations.

De werkwijzen in dit artikel zijn van toepassing op zowel PPT‑ als PPTX‑presentaties. De voorbeelden gebruiken PPTX‑bestanden; bij het opslaan naar PPT, gebruik de .ppt‑extensie en het overeenkomstige PPT‑opslaan‑formaat.

Write‑protectie instellen op een presentatie

Gebruik IProtectionManager.setWriteProtection om een wachtwoord toe te wijzen voor het wijzigen van een presentatie. Het opslaan van de presentatie behoudt de beschermingsinstelling.

Het volgende voorbeeld stelt write‑protectie in op een PPTX‑presentatie:

import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

Presentation presentation = new Presentation("pres.pptx");
try {
    presentation.getProtectionManager().setWriteProtection("modify_password");
    presentation.save("write-protected-pres.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Write‑protected presentatie laden

Omdat write‑protectie de inhoud van de presentatie niet versleutelt, is er geen wachtwoord nodig om de presentatie te laden. Het wachtwoord is alleen relevant bij het valideren van de autorisatie om de beschermde presentatie te wijzigen.

import com.aspose.slides.Presentation;

Presentation presentation = new Presentation("write-protected-pres.pptx");
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Geef geen write‑protection wachtwoord door aan ILoadOptions.setPassword. Die methode accepteert een opening‑wachtwoord voor versleutelde inhoud. Als een presentatie beide beschermingssoorten heeft, geef dan het opening‑wachtwoord door om deze te laden en verwerk het write‑protection wachtwoord apart.

Write‑protectie verwijderen van een presentatie

Gebruik IProtectionManager.removeWriteProtection om de wijzigingsbeperking te verwijderen, en sla vervolgens de presentatie op.

import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

Presentation presentation = new Presentation("write-protected-pres.pptx");
try {
    presentation.getProtectionManager().removeWriteProtection();
    presentation.save("write-protection-removed.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Controleren of een presentatie write‑protected is

Om een bestand te inspecteren zonder een volledige Presentation-instantie te maken, roep je IPresentationFactory.getPresentationInfo aan en inspecteer je IPresentationInfo.isWriteProtected. De methode gebruikt NullableBool en retourneert NullableBool.True wanneer write‑protectie wordt gedetecteerd.

import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.NullableBool;
import com.aspose.slides.PresentationFactory;

IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.isWriteProtected() == NullableBool.True) {
    System.out.println("The presentation is write protected.");
} else {
    System.out.println("Write protection was not detected.");
}

De stream‑overload van IPresentationFactory.getPresentationInfo biedt dezelfde informatie voor een presentatie die als stream wordt aangeleverd.

Write‑protection wachtwoord valideren

Gebruik IPresentationInfo.checkWriteProtection om een wijzigings‑wachtwoord te valideren zonder de volledige presentatie te laden. Controleer eerst IPresentationInfo.isWriteProtected zodat de applicatie alleen een wachtwoord vraagt of valideert wanneer write‑protectie aanwezig is.

import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.NullableBool;
import com.aspose.slides.PresentationFactory;

IPPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.isWriteProtected() != NullableBool.True) {
    System.out.println("The presentation is not write protected.");
} else if (presentationInfo.checkWriteProtection("modify_password")) {
    System.out.println("The write-protection password is correct.");
} else {
    System.out.println("The write-protection password is incorrect.");
}

IPresentationInfo.checkWriteProtection valideert alleen het write‑protection wachtwoord. Het valideert geen opening‑wachtwoord en bepaalt niet of versleutelde inhoud kan worden geladen. Omgekeerd valideert IPresentationInfo.checkPassword alleen een opening‑wachtwoord. Als een volledige presentatie al is geladen, biedt IProtectionManager.checkWriteProtection de equivalente write‑protection controle via zijn protection manager.

Log in productie‑applicaties geen wachtwoorden en neem ze niet op in diagnostische berichten. Vermijd onnodige herhaalde validatie‑pogingen en bewaar wachtwoorden in het geheugen alleen zolang als nodig.

FAQ

Versleutelt write‑protectie een presentatie?

Nee. Het beperkt de modificatie, maar laat de presentatie‑inhoud beschikbaar voor het laden en bekijken.

Is het write‑protection wachtwoord vereist om een presentatie te openen?

Nee. Alleen een opening‑wachtwoord is vereist om versleutelde presentatiedata te laden.

Kan een presentatie zowel een opening‑wachtwoord als een write‑protection wachtwoord hebben?

Ja. Geef het opening‑wachtwoord via de laadopties op om de versleutelde presentatie te openen, en valideer het write‑protection wachtwoord apart wanneer autorisatie voor wijziging nodig is.