Udostępnij za pośrednictwem


Porady: dane z pamięci podręcznej w dokumentach zabezpieczonych hasłem

Po dodaniu danych do pamięci podręcznej danych w dokumencie lub skoroszycie, który jest chroniony hasłem, zmiany w pamięci podręcznej danych nie są zapisywane automatycznie.Zmiany można zapisać do buforowanych danych przez zastąpienie dwóch metod w projekcie.

Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu dla następujących aplikacji: Excel 2013 i Excel 2010; Word 2013 i Word 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.

Buforowanie w dokumentach programu Word

Pamięć podręczna danych w dokumencie programu Word, który jest chroniony hasłem

  1. W ThisDocument klasy, oznaczyć publiczne pola lub właściwości, które mają być buforowane.Aby uzyskać więcej informacji, zobacz Buforowanie danych.

  2. Zastąpić DocumentBase.UnprotectDocument metoda w ThisDocument klasy i usunąć ochronę dokumentu.

    Gdy dokument zostanie zapisany, Visual Studio Tools for Office Runtime wywołania tej metody daje możliwość usunięcia ochrony dokumentu.Dzięki temu zmiany mają być zapisywane dane buforowany.

  3. Zastąpić DocumentBase.ProtectDocument metoda w ThisDocument klasy i ponownie zastosować ochronę do dokumentu.

    Po zapisaniu dokumentu, Visual Studio Tools for Office Runtime wywołania tej metody daje możliwość ponownego zastosowania ochrony w dokumencie.

Przykład

Poniższy przykład kodu demonstruje sposób buforowania danych w dokumencie programu Word, który jest chroniony hasłem.Zanim kod usuwa ochrony w DocumentBase.UnprotectDocument metoda, zapisuje bieżący ProtectionType , wartości tak, aby móc ponownie zastosować ten sam rodzaj ochrony w DocumentBase.ProtectDocument metoda.

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

Kompilowanie kodu

Dodaj ten kod do ThisDocument klasy do projektu.Kod ten zakłada, że hasło jest przechowywane w polu o nazwie securelyStoredPassword.

Buforowanie w skoroszytach programu Excel

W projektach programu Excel, ta procedura jest niezbędna tylko wtedy, gdy ochrona hasłem całego skoroszytu za pomocą Workbook.Protect metoda.Ta procedura nie jest konieczne, jeśli jest chroniony przy użyciu konkretnego arkusza przy użyciu hasła Worksheet.Protect metoda.

Pamięć podręczna danych w skoroszycie programu Excel, który jest chroniony hasłem

  1. W ThisWorkbook klasy lub jednej z Sheetn klas, oznaczyć publiczne pola lub właściwości, które mają być buforowane.Aby uzyskać więcej informacji, zobacz Buforowanie danych.

  2. Zastąpić WorkbookBase.UnprotectDocument metoda w ThisWorkbook klasy i usunięcie ochrony skoroszytu.

    Gdy skoroszyt jest zapisywany, Visual Studio Tools for Office Runtime wywołania tej metody daje możliwość nie chroń skoroszytu.Dzięki temu zmiany mają być zapisywane dane buforowany.

  3. Zastąpić WorkbookBase.ProtectDocument metoda w ThisWorkbook klasy i ponownie zastosować ochronę do dokumentu.

    Po zapisaniu skoroszytu, Visual Studio Tools for Office Runtime wywołania tej metody daje możliwość ponownego zastosowania ochrony w skoroszycie.

Przykład

Poniższy przykład kodu demonstruje sposób buforowania danych w skoroszycie programu Excel, który jest chroniony hasłem.Zanim kod usuwa ochrony w WorkbookBase.UnprotectDocument metoda, zapisuje bieżący ProtectStructure i ProtectWindows wartości, tak aby móc ponownie zastosować ten sam rodzaj ochrony w WorkbookBase.ProtectDocument metoda.

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

Kompilowanie kodu

Dodaj ten kod do ThisWorkbook klasy do projektu.Kod ten zakłada, że hasło jest przechowywane w polu o nazwie securelyStoredPassword.

Zobacz też

Zadania

Porady: dane z pamięci podręcznej do użycia w trybie offline lub na serwerze

Porady: programowane buforowanie źródła danych w dokumencie programu Word

Koncepcje

Buforowanie danych