Compartilhar via


Método DocumentBase.ProtectDocument

Fornece uma oportunidade para reaplicar a proteção por senha para o documento depois que os dados em cache foi salvo.

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 ProtectDocument
protected virtual void ProtectDocument()

Comentários

Substitua esse método em um projeto de nível de documento do Word se o documento está protegido usando uma senha e contém dados em cache que podem ser alterados em tempo de execução. Na implementação deste método, use o Protect método para proteger o documento.

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

  • UnprotectDocument. Quando o documento é salvo, o Visual Studio Tools for Office runtime chama este método. Adicione o código desse método que temporariamente desprotege o documento. Isso permite que as alterações dos dados em cache a ser salvo.

  • ProtectDocument. Depois que o documento é salvo, o Visual Studio Tools for Office runtime chama este método. Adicione o código desse método que reaplica a proteção ao documento.

For more information, see Como: Cache de dados em um documento protegido por senha.

O Visual Studio Tools for Office runtime chamadas de ProtectDocument método mesmo se os dados em cache não puderam ser salvas devido a algum erro que não está relacionado a proteção de senha. Por exemplo, se você implementar a ICachedType interface para personalizar como cache de dados é armazenada no documento, o ProtectDocument método é chamado, mesmo se sua ICachedType implementação lança uma exceção que impede que os dados em cache que está sendo salvo.

Exemplos

O exemplo de código a seguir demonstra como substituir o ProtectDocument método reaplicar proteção foi removida, substituindo o UnprotectDocument método. O código pressupõe que a senha é armazenada em um campo chamado securelyStoredPassword. Para usar esse exemplo, executá-lo do ThisDocument a classe em um projeto de nível de documento.

<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

UnprotectDocument

Outros recursos

Cache de dados

Como: Cache de dados em um documento protegido por senha