Я программно создаю файл DOCX, используя OpenXML SDK v2. Одно из требований документа - защищать его от редактирования.
Это достигается с помощью объекта DocumentProtection, например:
new DocumentProtection
{
Edit = DocumentProtectionValues.ReadOnly,
Enforcement = BooleanValues.One,
CryptographicProviderType = CryptProviderValues.RsaFull,
CryptographicAlgorithmClass = CryptAlgorithmClassValues.Hash,
CryptographicAlgorithmType = CryptAlgorithmValues.TypeAny,
CryptographicAlgorithmSid = 4,
CryptographicSpinCount = 50000,
Hash = hash,
Salt = salt
}
Это прекрасно работает, когда документ открывается в Word 2007, но при открытии в Word 2003 с пакетом совместимости защиту можно снять без ввода пароля.
Чтение в Интернете это выглядит «по замыслу» или, по крайней мере, ожидается.
Есть ли у кого-нибудь какие-нибудь умные идеи относительно сохранения защиты паролем при просмотре в Word 2003?