Работа с свойствами защиты паролем PST

Работа с свойствами защиты паролем PST

Microsoft Outlook позволяет пользователям защищать файлы PST паролем, чтобы ограничить к ним доступ. Aspose.Email может обнаружить защиту паролем в файле PST. В этой статье показано, как:

  • Удалить/Сбросить свойство пароля из PST
  • Установить/Изменить пароль PST

Удаление/Сброс свойства PR_PST_PASSWORD

Удалить свойство PR_PST_PASSWORD невозможно так же, как удаляются другие свойства из хранилища сообщений. Вместо этого нам нужно установить его значение в ноль (0), чтобы оно было удалено. Свойство “Store” класса PST позволяет получить доступ к свойствам хранилища PST, вместо свойств MessageStoreProperties PST в этом случае. Следующий фрагмент кода показывает, как удалить/сбросить свойство PR_PST_PASSWORD.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
System::String dataDir = RunExamples::GetDataDir_Outlook();
System::SharedPtr<PersonalStorage> personalStorage = PersonalStorage::FromFile(dataDir + L"PersonalStorage1.pst");
if (personalStorage->get_Store()->get_Properties()->Contains(MapiPropertyTag::PR_PST_PASSWORD))
{
System::SharedPtr<MapiProperty> property = System::MakeObject<MapiProperty>(MapiPropertyTag::PR_PST_PASSWORD, System::BitConverter::GetBytes((int64_t)0));
personalStorage->get_Store()->SetProperty(property);
}

Установка пароля для файлов PST

Следующий фрагмент кода показывает, как установить пароль для файлов PST.

For complete examples and data files, please go to https://github.com/kashifiqb/Aspose.Email-for-C
System::String dataDir = RunExamples::GetDataDir_Outlook();
System::String alreadyCreated = dataDir + L"SetPasswordOnPST_out.pst";
if (System::IO::File::Exists(alreadyCreated))
{
System::IO::File::Delete(alreadyCreated);
}
else { }
{
System::SharedPtr<PersonalStorage> pst = PersonalStorage::Create(dataDir + L"SetPasswordOnPST_out.pst", Aspose::Email::Outlook::Pst::FileFormatVersion::Unicode);
// Set the password
const System::String password = L"Password1";
pst->get_Store()->ChangePassword(password);
// Remove the password
pst->get_Store()->ChangePassword(nullptr);
}