PHP'de Sunumları Yazma Korumalı Hale Getirme

Giriş

Yazma koruma parolası bir sunumun değiştirilmesini kısıtlar ancak içeriğini şifrelemez. Kullanıcılar bir yazma korumalı sunumu parola olmadan yükleyip görüntüleyebilirler. Uygulamaya bağlı olarak, içeriği düzenleyip farklı bir adla kaydedebilirler, bu yüzden yazma koruması gizlilik mekanizması olarak değerlendirilmemelidir.

Açma parolası farklı bir amaç taşır: sunumu şifreler ve içeriğini yüklemek için gereklidir. Bir sunumu şifrelemek veya açma parolasını doğrulamak için, Sunumları Parola ile Koruma bölümüne bakın.

Bu makaledeki iş akışları PPT ve PPTX sunumlarının her ikisine de uygulanır. Örnekler PPTX dosyalarını kullanır; PPT olarak kaydederken .ppt uzantısını ve ilgili PPT kaydetme biçimini kullanın.

Bir Sunuma Yazma Koruması Ayarlama

Bir sunumu değiştirmek için bir parola atamak üzere ProtectionManager::setWriteProtection yöntemini kullanın. Sunumu kaydetmek koruma ayarını kalıcı hâle getirir.

Aşağıdaki örnek, bir PPTX sunumunda yazma koruması ayarlar:

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

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

Yazma Korumalı Bir Sunumu Yükleme

Yazma koruması sunum içeriğini şifrelemediği için sunumu yüklemek için parola gerekmez. Parola yalnızca korumalı sunumu değiştirme yetkisini doğrularken ilgilidir.

use aspose\slides\Presentation;

$presentation = new Presentation("write-protected-pres.pptx");
try {
    echo("Slide count: " . $presentation->getSlides()->size() . "\n");
} finally {
    $presentation->dispose();
}

Yazma koruma parolasını LoadOptions::setPassword metoduna göndermeyin. Bu metod şifreli içerik için bir açma parolası alır. Bir sunum her iki koruma türüne de sahipse, yüklemek için açma parolasını sağlayın ve yazma koruma parolasını ayrı şekilde işleyin.

Bir Sunumdan Yazma Korumasını Kaldırma

ProtectionManager::removeWriteProtection yöntemini kullanarak değiştirme kısıtlamasını kaldırın, ardından sunumu kaydedin.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

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

Bir Sunumun Yazma Koruması Olup Olmadığını Kontrol Etme

Tam bir Presentation örneği oluşturmadan bir dosyayı incelemek için PresentationFactory::getPresentationInfo metodunu çağırın ve PresentationInfo::isWriteProtected özelliğini inceleyin. Metot NullableBool kullanır ve yazma koruması tespit edildiğinde NullableBool::True döndürür.

use aspose\slides\NullableBool;
use aspose\slides\PresentationFactory;

$presentationInfo = PresentationFactory::getInstance()->getPresentationInfo("write-protected-pres.pptx");

if ($presentationInfo->isWriteProtected() == NullableBool::True) {
    echo("The presentation is write protected.\n");
} else {
    echo("Write protection was not detected.\n");
}

PresentationFactory::getPresentationInfo metodunun akış aşırı yüklemesi, akış olarak verilen bir sunum için aynı bilgileri sağlar.

Yazma Koruma Parolasını Doğrulama

Tam bir sunumu yüklemeden bir değiştirme parolasını doğrulamak için PresentationInfo::checkWriteProtection yöntemini kullanın. Uygulamanın yalnızca yazma koruması mevcut olduğunda parola isteyip doğrulaması için önce PresentationInfo::isWriteProtected özelliğini kontrol edin.

use aspose\slides\NullableBool;
use aspose\slides\PresentationFactory;

$presentationInfo = PresentationFactory::getInstance()->getPresentationInfo("write-protected-pres.pptx");

if ($presentationInfo->isWriteProtected() != NullableBool::True) {
    echo("The presentation is not write protected.\n");
} elseif ($presentationInfo->checkWriteProtection("modify_password")) {
    echo("The write-protection password is correct.\n");
} else {
    echo("The write-protection password is incorrect.\n");
}

PresentationInfo::checkWriteProtection yalnızca yazma koruma parolasını doğrular. Bir açma parolasını doğrulamaz veya şifreli içeriğin yüklenip yüklenemeyeceğini belirlemez. Bunun tersine, PresentationInfo::checkPassword yalnızca bir açma parolasını doğrular. Eğer tam bir sunum zaten yüklendiyse, ProtectionManager::checkWriteProtection koruma yöneticisi aracılığıyla eşdeğer yazma koruma kontrolünü sağlar.

Üretim uygulamalarında parolaları kaydetmeyin veya tanı mesajlarına eklemeyin. Gereksiz tekrar doğrulama denemelerinden kaçının ve parolaları bellekte yalnızca gerektiği sürece tutun.

SSS

Yazma koruması bir sunumu şifreler mi?

Hayır. Değiştirmeyi kısıtlar ancak sunum içeriğini yükleme ve görüntüleme için kullanılabilir bırakır.

Bir sunumu açmak için yazma koruma parolası gerekli mi?

Hayır. Şifrelenmiş sunum içeriğini yüklemek için yalnızca bir açma parolası gereklidir.

Bir sunum hem açma parolası hem de yazma koruma parolası içerebilir mi?

Evet. Şifreli sunumu açmak için açma parolasını yükleme seçenekleriyle sağlayın ve değiştirme yetkisi gerektiğinde yazma koruma parolasını ayrı olarak doğrulayın.