Compartilhar via


Método WorkbookBase.ProtectDocument

Chamado por Visual Studio Tools for Office Runtime de modo que você possa reaplicar a proteção de senha para a pasta de trabalho depois que os dados armazenados em cachê foram salvos.

Namespace:  Microsoft.Office.Tools.Excel
Assembly:  Microsoft.Office.Tools.Excel.v4.0.Utilities (em Microsoft.Office.Tools.Excel.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 um documento nível para o excel se sua pasta de trabalho é protegida usando uma senha, e contém os dados armazenados em cachê que podem ser modificados em tempo de execução. Em sua implementação desse método, use o método de Protect para proteger a pasta de trabalho.

Por padrão, as alterações aos dados armazenados em cachê em uma pasta de trabalho senha- protegida não são mantidas quando a pasta de trabalho é salva. Para salvar alterações feitas nos dados armazenados em cache, você deve substituir os seguintes métodos no projeto:

  • UnprotectDocument. Quando a pasta de trabalho é salva, Visual Studio Tools for Office Runtime chama esse método. Adicione código para este método esse temporariamente unprotects a pasta de trabalho. Isso permite que as alterações feitas nos dados armazenados em cache sejam salvas.

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

Para obter mais informações, consulte Como armazenar dados em cache em um documento protegido por senha.

Visual Studio Tools for Office Runtime chama o método de ProtectDocument mesmo se os dados armazenados em cachê não podem ser salvo devido a erros que não está relacionada à proteção de senha. Por exemplo, se você implementa a interface de ICachedType para personalizar como os dados armazenados em cachê são armazenados no documento, o método de ProtectDocument é chamado mesmo se sua implementação deICachedType gerencie uma exceção que impede os dados armazenados em cachê serem salvos.

Exemplos

O exemplo de código a seguir demonstra como substituir o método de ProtectDocument para reaplicar proteção que foi removida substituindo o método de UnprotectDocument . Para usar este código, ele execução da classe de ThisWorkbook em um projeto de um documento nível para o excel. O código pressupõe que a senha seja armazenada em um campo chamado securelyStoredPassword.

<CachedAttribute()> _
Public CachedString As String = "This string is cached in the workbook."

Private protectStructureValue As Boolean
Private protectWindowsValue As Boolean

Protected Overrides Sub UnprotectDocument()
    protectStructureValue = Me.ProtectStructure
    protectWindowsValue = Me.ProtectWindows

    Me.Unprotect(securelyStoredPassword)
End Sub

Protected Overrides Sub ProtectDocument()
    Me.Protect(securelyStoredPassword, protectStructureValue, _
        protectWindowsValue)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the workbook.";

private bool protectStructureValue;
private bool protectWindowsValue;

protected override void UnprotectDocument()
{
    protectStructureValue = this.ProtectStructure;
    protectWindowsValue = this.ProtectWindows;

    this.Unprotect(securelyStoredPassword);
}

protected override void ProtectDocument()
{
    this.Protect(securelyStoredPassword, protectStructureValue,
        protectWindowsValue);
}

Segurança do .NET Framework

Consulte também

Referência

WorkbookBase Classe

Namespace Microsoft.Office.Tools.Excel

UnprotectDocument

Outros recursos

Armazenando dados em cache

Como armazenar dados em cache em um documento protegido por senha