Поделиться через


DocumentBase.UnprotectDocument - метод

Предоставляет возможность удалить защиту паролем из документа и разрешить сохранение кэшированных данных.

Пространство имен:  Microsoft.Office.Tools.Word
Сборка:  Microsoft.Office.Tools.Word.v4.0.Utilities (в Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Синтаксис

'Декларация
Protected Overridable Sub UnprotectDocument
protected virtual void UnprotectDocument()

Заметки

Перегрузите этот метод в проекте уровня документа для Word, если документ защищен пароле и содержит кэшированные данные, которые могут быть изменены во время выполнения. При реализации этого метода используйте метод Unprotect для временного отключения защиты документа.

По умолчанию изменения кэшированных данных в документе, защищенном паролем, не сохраняются при сохранении документа. Чтобы сохранить изменения в кэшированных данных, необходимо перегрузить в проекте следующие методы:

  • UnprotectDocument. При сохранении документа этот метод вызывается средой выполнения Среда выполнения Visual Studio Tools for Office. Добавьте код в этот метод, чтобы на время снять защиту с документа. Это позволяет сохранить изменения кэшированных данных.

  • ProtectDocument. После сохранения документа этот метод вызывается средой выполнения Среда выполнения Visual Studio Tools for Office. Добавьте код в данный метод, чтобы снова применить защиту к документу.

Дополнительные сведения см. в разделе Практическое руководство. Кэширование данных в документе, защищенном паролем.

Примеры

В приведенном ниже примере кода демонстрируется перегрузка метода UnprotectDocument для временного снятия защиты с документа, чтобы сохранить измененные кэшированные данные. Сначала в примере сохраняются текущее значение ProtectionType, чтобы впоследствии применить в методе ProtectDocument тот же самый тип защиты. В этом коде предполагается, что пароль хранится в поле с именем securelyStoredPassword. Чтобы использовать этот пример, запустите его из класса ThisDocument в проекте уровня документа.

<CachedAttribute()> _
Public CachedString As String = "This string is cached in the document."

Private protectionTypeValue As Word.WdProtectionType

Protected Overrides Sub UnprotectDocument()
    If Me.ProtectionType <> Word.WdProtectionType.wdNoProtection Then
        protectionTypeValue = Me.ProtectionType
        Me.Unprotect(securelyStoredPassword)
    End If
End Sub

Protected Overrides Sub ProtectDocument()
    Me.Protect(protectionTypeValue, Password:=securelyStoredPassword)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the document.";

private Word.WdProtectionType protectionTypeValue;

protected override void UnprotectDocument()
{
    if (this.ProtectionType != Word.WdProtectionType.wdNoProtection)
    {
        protectionTypeValue = this.ProtectionType;
        this.Unprotect(ref securelyStoredPassword);
    }
}

protected override void ProtectDocument()
{
    this.Protect(protectionTypeValue, ref missing,
        ref securelyStoredPassword, ref missing, ref missing);
}

Безопасность платформы .NET Framework

См. также

Ссылки

DocumentBase Класс

Microsoft.Office.Tools.Word - пространство имен

ProtectDocument

Другие ресурсы

Кэширование данных

Практическое руководство. Кэширование данных в документе, защищенном паролем