DocumentBase.UnprotectDocument Method
Provides you with an opportunity to remove password protection from the document and enable cached data to be saved.
Namespace: Microsoft.Office.Tools.Word
Assembly: Microsoft.Office.Tools.Word.v4.0.Utilities (in Microsoft.Office.Tools.Word.v4.0.Utilities.dll)
Syntax
'Declaration
Protected Overridable Sub UnprotectDocument
protected virtual void UnprotectDocument()
Remarks
Override this method in a document-level project for Word if your document is protected by using a password, and it contains cached data that might be changed at run time. In your implementation of this method, use the Unprotect method to temporarily unprotect the document.
By default, changes to cached data in a password-protected document are not persisted when the document is saved. To save changes to the cached data, you must override the following methods in your project:
UnprotectDocument. When the document is saved, the Visual Studio Tools for Office runtime calls this method. Add code to this method that temporarily unprotects the document. This enables changes to the cached data to be saved.
ProtectDocument. After the document is saved, the Visual Studio Tools for Office runtime calls this method. Add code to this method that reapplies protection to the document.
For more information, see How to: Cache Data in a Password-Protected Document.
Examples
The following code example demonstrates how to override the UnprotectDocument method to temporarily unprotect the document so that changes to the cached data can be saved. The example first saves the current ProtectionType value, so that the same type of protection can be reapplied later in the ProtectDocument method. The code assumes that the password is stored in a field named securelyStoredPassword. To use this example, run it from the ThisDocument class in a document-level project.
<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 Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
Microsoft.Office.Tools.Word Namespace