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 (cреда выполнения).Добавьте код в этот метод, чтобы на время снять защиту с документа.Это позволяет сохранить изменения кэшированных данных.
ProtectDocument.После сохранения документа этот метод вызывается средой выполнения Visual Studio Tools for Office (cреда выполнения).Добавьте код в данный метод, чтобы снова применить защиту к документу.
Дополнительные сведения см. в разделе Практическое руководство. Кэширование данных в документе, защищенном паролем.
Примеры
В приведенном ниже примере кода демонстрируется перегрузка метода 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
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Microsoft.Office.Tools.Word - пространство имен
Другие ресурсы
Практическое руководство. Кэширование данных в документе, защищенном паролем