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 Runtime 将调用此方法。 请向此方法中添加可暂时取消对文档的保护的代码。 这使您可以保存对缓存数据所做的更改。
ProtectDocument. 保存文档后,Visual Studio Tools for Office Runtime 将调用此方法。 请向此方法中添加对文档重新应用保护的代码。
有关更多信息,请参见如何:在受密码保护的文档中缓存数据。
示例
下面的代码示例演示如何重写 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 命名空间