Como: Dados de cache em um documento protegida por senha
Se aplica a |
---|
As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office. Tipo de Projeto
Versão do Microsoft Office
For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto. |
Em projetos de nível de documento para Word 2007 e Excel 2007, se você adicionar dados ao cache de dados em um documento ou pasta de trabalho que está protegida com uma senha, alterações nos dados armazenados em cache não serão salvas.
Iniciando no Visual Studio 2008 Serviço Pack 1 (SP1), você pode salvar as alterações aos dados armazenados em cache, substituindo os dois métodos no projeto.
Cache em documentos do Word
A dados de cache em um documento do Word que está protegido com a senha
Na classe ThisDocument, marcar um campo público ou a propriedade a ser armazenado em cache.For more information, see Cache de dados.
Substituir o método Document.UnprotectDocument a ThisDocument classe e remover proteção do documento.
Quando o documento é salvo, o Tempo de execução Ferramentas do Visual Studio para o Office chama esse método para dar uma oportunidade para desproteger o documento.Isso permite que alterações nos dados armazenados em cache a ser salvo.
Substituir o método Document.ProtectDocument na classe ThisDocument e reaplique proteção para o documento.
Depois que o documento é salvo, o Tempo de execução Ferramentas do Visual Studio para o Office chama esse método lhe oferece a oportunidade de reaplicar proteção para o documento.
Exemplo
O exemplo de código a seguir demonstra como armazenar em cache dados em um documento do Word que está protegido com a senha.Antes do código remove a proteção no método Document.UnprotectDocument , ele salva o valor atual do ProtectionType , para que o mesmo tipo de proteção pode ser reaplicado no método Document.ProtectDocument.
<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);
}
Compilando o código
Adicionar Este código para a classe ThisDocument no seu projeto.Esse código pressupõe que a senha é armazenada em um campo chamado securelyStoredPassword.
Cache em pastas de trabalho do Excel
Em projetos do Excel, este procedimento é necessário apenas quando você protege a pasta de trabalho inteira com uma senha usando o método Workbook.Protect.Esse procedimento não é necessário se você proteger apenas uma planilha específica com a senha usando o método Worksheet.Protect.
A dados de cache em uma pasta de trabalho do Excel que está protegida com a senha
Na classe ThisWorkbook ou uma das classes n Sheet, marque um campo público ou a propriedade a ser armazenado em cache.For more information, see Cache de dados.
Substituir o método Workbook.UnprotectDocument a ThisWorkbook classe e remover a proteção da pasta de trabalho.
Quando a pasta de trabalho é salva, o Tempo de execução Ferramentas do Visual Studio para o Office chama esse método para dar uma oportunidade para desproteger a pasta de trabalho.Isso permite que alterações nos dados armazenados em cache a ser salvo.
Substituir o método Workbook.ProtectDocument na classe ThisWorkbook e reaplique proteção para o documento.
Após salva a pasta de trabalho, o Tempo de execução Ferramentas do Visual Studio para o Office chama esse método lhe oferece a oportunidade de reaplicar proteção para a pasta de trabalho.
Exemplo
O exemplo de código a seguir demonstra como armazenar em cache dados em uma pasta de trabalho do Excel que está protegida com a senha.Antes do código remove a proteção no método Workbook.UnprotectDocument , ele salva os atual ProtectStructure e ProtectWindows valores, para que o mesmo tipo de proteção pode ser reaplicado no método Workbook.ProtectDocument.
<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);
}
Compilando o código
Adicionar Este código para a classe ThisWorkbook no seu projeto.Esse código pressupõe que a senha é armazenada em um campo chamado securelyStoredPassword.
Consulte também
Tarefas
Como: Armazenar em cache dados para uso off-line ou em um servidor
Como: Armazenar em cache programaticamente uma Origem de dados em um documento do Office
Conceitos
Date |
History |
Motivo |
---|---|---|
De 2008 de julho |
Novo tópico. |
Alteração de recurso do SP1. |