Защита документов с помощью OpenXML SDK 2 - PullRequest
3 голосов
/ 22 августа 2009

Я программно создаю файл 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?

...