Método DocumentBase.UnprotectDocument

Fornece uma oportunidade para remover a proteção de senha do documento e de ativar os dados armazenados em cache a ser salvos.

Namespace:  Microsoft.Office.Tools.Word
Assembly:  Microsoft.Office.Tools.Word.v4.0.Utilities (em Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Sintaxe

'Declaração
Protected Overridable Sub UnprotectDocument
protected virtual void UnprotectDocument()

Comentários

Substitua esse método em um projeto de um documento nível para Word se seu documento está protegido usando uma senha, e contém os dados armazenados em cache que podem ser modificados em tempo de execução.Na implementação do método, use o método de Unprotect temporariamente ao unprotect o documento.

Por padrão, as alterações aos dados armazenados em cache em um documento protegido por senha não são mantidas quando o documento é salvo.Para salvar as alterações aos dados armazenados em cache, você deve substituir os seguintes métodos em seu projeto:

  • UnprotectDocument.Quando o documento é salvo, Visual Studio Tools for Office Runtime chama esse método.Adicione código para este método que temporariamente unprotects o documento.Isso permite que as alterações aos dados armazenados em cache a ser salvos.

  • ProtectDocument.Após o documento é salvo, Visual Studio Tools for Office Runtime chama esse método.Adicione código para este método que reaplica proteção para o documento.

Para obter mais informações, consulte Como: dados do Cache em um documento protegido por senha.

Exemplos

O exemplo de código a seguir demonstra como temporariamente substituir o método de UnprotectDocument ao unprotect o documento de modo que as alterações aos dados armazenados em cache podem ser salvas.O exemplo primeiro salva o valor atual de ProtectionType , para que o mesmo tipo de proteção pode ser reaplicado posteriormente no método de ProtectDocument .O código presume que a senha seja armazenada em um campo denominado securelyStoredPassword.Para usar este exemplo, ele execução da classe de ThisDocument em um projeto de um documento nível.

<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);
}

Segurança do .NET Framework

Consulte também

Referência

DocumentBase Classe

Namespace Microsoft.Office.Tools.Word

ProtectDocument

Outros recursos

Cache de dados

Como: dados do Cache em um documento protegido por senha