Freigeben über


Exemplarische Vorgehensweise: Gewähren und Entziehen von Berechtigungen für eine Office-Projektmappe (2003 System)

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Visual Studio Tools for Office-Projekte und Versionen von Microsoft Office.

Projekttyp

  • Projekte auf Dokumentebene

  • Projekte auf Anwendungsebene

Microsoft Office-Version

  • Microsoft Office 2003

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

In dieser exemplarischen Vorgehensweise werden die Grundlagen der Sicherheit in Visual Studio Tools for Office veranschaulicht.

In dieser exemplarischen Vorgehensweise werden die folgenden Aufgaben veranschaulicht:

  • Entfernen der Standardsicherheitseinstellung

  • Hinzufügen eines neuen Berechtigungssatzes

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

  • Visual Studio Tools for Office (eine optionale Komponente von Visual Studio 2008 Professional und Visual Studio Team System).

  • Microsoft Office Excel 2003.

Erstellen des Projekts

In diesem Schritt erstellen Sie ein Excel-Arbeitsmappenprojekt.

So erstellen Sie ein neues Projekt

  • Erstellen Sie ein Excel-Arbeitsmappenprojekt mit dem Namen My Security Test unter Verwendung der Projektvorlage für Office 2003.

    Für die Schritte in dieser exemplarischen Vorgehensweise wird davon ausgegangen, dass Sie das Projekt unter C:\Walkthroughs speichern. Wählen Sie im Assistenten Neues Dokument erstellen aus. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte.

Visual Studio öffnet die neue Excel-Arbeitsmappe im Designer und fügt das Projekt My Security Test im Projektmappen-Explorer hinzu.

Hinzufügen von Code im Hintergrund des Arbeitsblatts

Für das Projekt ist Code erforderlich, den Sie ausführen können, um zu testen, ob die Sicherheit ordnungsgemäß festgelegt wurde. Für diese exemplarische Vorgehensweise fügen Sie einem Initialisierungsereignis des Arbeitsblatts ein Meldungsfeld hinzu.

So fügen Sie einem Initialisierungsereignis ein Meldungsfeld hinzu

  1. Vergewissern Sie sich, dass die Arbeitsmappe My Security Test.xls im Visual Studio-Designer geöffnet ist und Sheet1 angezeigt wird.

  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Sheet1.vb oder Sheet1.cs, und klicken Sie dann im Kontextmenü auf Code anzeigen.

  3. Fügen Sie der Startup-Methode in der Sheet1-Klasse folgenden Code hinzu, damit während der Initialisierung ein Meldungsfeld angezeigt wird.

    Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        MessageBox.Show("Security settings are correct.")
    End Sub
    
    private void Sheet1_Startup(object sender, System.EventArgs e)
    {
        MessageBox.Show("Security settings are correct.");
    }
    
  4. Drücken Sie F5, um das Projekt auszuführen.

    Excel wird gestartet, und das Meldungsfeld wird angezeigt.

  5. Schließen Sie das Meldungsfeld.

  6. Beenden Sie Excel.

  7. Suchen Sie im Visual Studio-Designer die Registerkarte für My Security Test.xls, und wählen Sie sie aus.

  8. Schließen Sie My Security Test.xls (die Excel-Arbeitsblatt-Entwurfsoberfläche) im Visual Studio-Designer.

    Sie müssen alle geöffneten Instanzen von Excel schließen, bevor Sie die Sicherheitsrichtlinie ändern können.

Beim Erstellen des Excel-Arbeitsmappenprojekts wurden der Sicherheitsrichtlinie auf der Benutzerebene vom Assistenten eine neue Sicherheitscodegruppe und eine untergeordnete Codegruppe hinzugefügt.

Danach entfernen Sie die vom Assistenten erstellte Codegruppe.

Entfernen der Standardcodegruppe

Suchen Sie die erstellte Standardcodegruppe, und entfernen Sie sie.

So entfernen Sie eine Codegruppe

  1. Öffnen Sie in der Systemsteuerung das Tool Verwaltung.

  2. Starten Sie Microsoft .NET Framework 2.0-Konfiguration.

    Das Microsoft .NET Framework 2.0-Konfigurationstool ist nicht im Lieferumfang von Visual Studio 2008 enthalten. Sie können es als Teil des .NET Framework 2.0 Software Development Kit installieren, das im Microsoft Download Center verfügbar ist. Ein Beispiel dazu finden Sie unter .NET Framework 2.0 Software Development Kit (SDK) (x86).

  3. Erweitern Sie im Strukturansichtsbereich nacheinander .NET Framework 2.0-Konfiguration, Arbeitsplatz, Laufzeitsicherheitsrichtlinie, Benutzer, Codegruppen, All_Code und dann VSTOProjects.

    Für jedes erstellte Projekt ist eine GUID vorhanden. Erweitern Sie jede GUID, um den Pfad zum zugeordneten Dokument anzuzeigen.

  4. Klicken Sie mit der rechten Maustaste auf die GUID für die Codegruppe C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.xls, und klicken Sie dann im Kontextmenü auf Löschen.

    Ein Dialogfeld wird angezeigt, in dem Sie gefragt werden, ob Sie diese Codegruppe tatsächlich löschen möchten.

  5. Klicken Sie auf Ja.

  6. Wechseln Sie zurück zu Visual Studio, und drücken Sie F5, um das Projekt My Security Test zu starten.

    Eine Fehlermeldung wird angezeigt. In dieser wird angegeben, dass die aktuelle .NET-Sicherheitsrichtlinie die Ausführung der Anpassung nicht zulässt.

  7. Klicken Sie auf OK.

  8. Beenden Sie Excel.

Die Assembly kann nicht ausgeführt werden, wenn sie über keine explizite Berechtigung in der Microsoft .NET Framework-Sicherheitsrichtlinie verfügt.

Gewähren Sie der Assembly anschließend die Berechtigung mithilfe eines starken Namens anstelle einer URL als Beweis.

Zuweisen eines starken Namens zu einer Assembly

Ein starker Name ist als Beweis im Allgemeinen sicherer als eine URL. Sie können einen starken Namen erstellen und ihn dieser Assembly in Visual Studio zuweisen.

So erstellen Sie einen starken Namen

  1. Klicken Sie in Visual Studio im Menü Projekt auf Eigenschaften von My Security Test.

  2. Klicken Sie auf die Registerkarte Signierung.

  3. Wählen Sie Assembly signieren aus.

  4. Wählen Sie in der Liste Schlüsseldatei mit starkem Namen auswählen die Option Neu aus.

  5. Geben Sie im Dialogfeld Schlüssel für einen starken Namen erstellen im Feld Schlüsseldateiname den Namen SecurityTestKey ein.

  6. Deaktivieren Sie das Kontrollkästchen Schlüsseldatei mit Kennwort schützen.

  7. Klicken Sie auf OK.

    Die Schlüsseldatei SecurityTestKey.snk wird im Projektmappen-Explorer angezeigt.

  8. Klicken Sie im Menü Erstellen auf Projektmappe erstellen, um die Assembly in Abhängigkeit vom Schlüsselpaar für den starken Namen zu erstellen.

Hinweis:

Sie müssen unbedingt für die Sicherheit der Schlüsseldatei sorgen. Sie sollten sie stets mit einem Kennwort schützen und zudem Maßnahmen ergreifen, die den unbefugten Zugriff auf die Datei verhindern. Die Schlüsseldatei bildet die Grundlage für viele Entscheidungen zur Vertrauenswürdigkeit. Geben Sie die Schlüsseldatei nur an vertrauenswürdige und verantwortungsvolle Personen weiter. Wenn ein bösartiger Benutzer sich die Schlüsseldatei verschaffen und das Kennwort ermitteln kann, kann er bösartige Assemblys erstellen, die den Eindruck erwecken, von Ihnen zu stammen.

Gewähren von Vertrauenswürdigkeit auf der Grundlage eines starken Namens

Fügen Sie nun eine neue Codegruppe hinzu, um der Assembly volle Vertrauenswürdigkeit auf der Grundlage eines starken Namens zu gewähren.

So gewähren Sie Vertrauenswürdigkeit auf der Grundlage eines starken Namens

  1. Öffnen Sie Microsoft .NET Framework 2.0-Konfiguration erneut.

  2. Klicken Sie mit der rechten Maustaste auf den Knoten VSTOProjects, und klicken Sie anschließend im Kontextmenü auf Neu.

  3. Geben Sie für die neue Codegruppe den Namen Security Test Strong Name ein, und klicken Sie dann auf Weiter.

  4. Wählen Sie in der Liste Wählen Sie den Bedingungstyp für die Codegruppe aus den Eintrag Starker Name aus.

  5. Klicken Sie auf Importieren.

  6. Navigieren Sie in Visual Basic zu C:\Walkthroughs\My Security Test\My Security Test\bin\My Security Test.dll oder in C# zu C:\Walkthroughs\My Security Test\My Security Test\bin\debug\My Security Test.dll, und klicken Sie auf Öffnen.

  7. Klicken Sie auf Weiter.

  8. Klicken Sie auf Weiter, um den Berechtigungssatz FullTrust zu akzeptieren, und klicken Sie dann auf Fertig stellen.

  9. Schließen Sie Microsoft .NET Framework 2.0-Konfiguration.

Testen der Anwendung

Nun können Sie das Projekt testen, um sicherzustellen, dass der Code beim Öffnen der Arbeitsmappe ausgeführt wird.

So testen Sie die Arbeitsmappe

  1. Drücken Sie F5, um das Projekt auszuführen.

  2. Vergewissern Sie sich, dass das Meldungsfeld angezeigt wird.

Siehe auch

Aufgaben

Gewusst wie: Gewähren von Berechtigungen für Ordner und Assemblys (2003 System)

Gewusst wie: Entfernen von Berechtigungen für Ordner und Assemblys (2003 System)

Konzepte

Sicherheitsanforderungen für die Ausführung von Office-Projektmappen (2003 System)

Empfohlene Vorgehensweisen für die Sicherheit in Office-Projektmappen (2003 System)

Weitere Ressourcen

Sicherheit in Office-Projektmappen (2003 System)