Codezugriffssicherheit für ClickOnce-Anwendungen
Aktualisiert: November 2007
ClickOnce-Anwendungen basieren auf .NET Framework und unterliegen den Einschränkungen aufgrund der Codezugriffssicherheit. Aus diesem Grund ist es wichtig, dass Sie sich mit dem Thema Codezugriffssicherheit auseinander setzen und Ihre Erkenntnisse beim Schreiben von ClickOnce-Anwendungen berücksichtigen.
Mithilfe der Codezugriffssicherheit in .NET Framework wird der Zugriff von Code auf geschützte Ressourcen und Operationen eingeschränkt. Sie sollten nur die Berechtigungen für die Codezugriffssicherheit für ClickOnce-Anwendungen konfigurieren, die zum Ausführen der Anwendung benötigt werden. In Visual Studio stehen die entsprechenden Tools zur Verfügung, die für die Festlegung und Konfiguration der Berechtigungen einer Anwendung erforderlich sind.
Standard-Codezugriffssicherheit von ClickOnce
Eine ClickOnce-Anwendung erhält bei Installation oder Ausführung auf einem Clientcomputer standardmäßig die Berechtigung Voll vertrauenswürdig. Obwohl es in manchen Fällen tatsächlich notwendig sein kann, einer Anwendung die Berechtigung Voll vertrauenswürdig zu gewähren, ist dies normalerweise aus zwei wichtigen Gründen keine empfehlenswerte Vorgehensweise:
Eine Anwendung mit der Berechtigung Voll vertrauenswürdig hat uneingeschränkten Zugriff auf Ressourcen wie das Dateisystem und die Registrierung. Dadurch kann Ihre Anwendung (und das System des Endbenutzers) von Code ausgenutzt werden, der in bösartiger Absicht erstellt wurde.
Wenn eine Anwendung die Berechtigung Voll vertrauenswürdig benötigt, wird der Endbenutzer aufgefordert, der Anwendung diese Berechtigung zu gewähren. Das bedeutet, dass die Anwendung nicht durchgängig nach dem ClickOnce-Prinzip arbeitet und weniger erfahrene Benutzer durch solche Aufforderungen verwirrt werden können.
Hinweis: Bei der Installation einer Anwendung von Wechselmedien (z. B. einer CD-ROM) wird keine Aufforderung angezeigt. Darüber hinaus können Netzwerkadministratoren Netzwerkrichtlinien so konfigurieren, dass keine Aufforderung bei der Installation einer Anwendung von einer vertrauenswürdigen Quelle angezeigt wird. Weitere Informationen finden Sie unter Überblick über die Bereitstellung vertrauenswürdiger Anwendungen.
Aus diesen Gründen sollten Sie immer die Berechtigungen für die Codezugriffssicherheit für Ihre Anwendung bearbeiten, sodass nur die Berechtigungen enthalten sind, die zum Ausführen der Anwendung erforderlich sind.
Konfigurieren von Sicherheitsberechtigungen
Sie sollten ClickOnce-Anwendungen stets so konfigurieren, dass sie nur die Berechtigungen für die Codezugriffssicherheit anfordern, die sie tatsächlich benötigen. Sie können Sicherheitsberechtigungen im Projekt-Designer auf der Seite Sicherheit konfigurieren.
Im Projekt-Designer befindet sich auf der Seite Sicherheit das Kontrollkästchen ClickOnce-Sicherheitseinstellungen aktivieren. Wenn dieses Kontrollkästchen aktiviert ist, werden dem Bereitstellungsmanifest der Anwendung Sicherheitsberechtigungsanforderungen hinzugefügt. Bei der Installation wird der Benutzer aufgefordert, Berechtigungen zu gewähren, wenn die angeforderten Berechtigungen über die Standardberechtigungen für die Zone hinausgehen, aus der die Anwendung bereitgestellt wird. Weitere Informationen finden Sie unter Gewusst wie: Aktivieren von ClickOnce-Sicherheitseinstellungen.
Von anderen Speicherorten bereitgestellten Anwendungen werden ohne Aufforderung andere Berechtigungsebenen gewährt. Wird eine Anwendung beispielsweise aus dem Internet bereitgestellt, erhält sie einen sehr eingeschränkten Satz von Berechtigungen. Wird sie aus dem lokalen Intranet installiert, erhält sie mehr Berechtigungen, und bei der Installation von einer CD-ROM erhält sie die Berechtigungen für volle Vertrauenswürdigkeit.
Als Ausgangspunkt zum Konfigurieren von Berechtigungen können Sie eine Sicherheitszone in der Liste Zone auf der Seite Sicherheit auswählen. Wenn die Anwendung voraussichtlich aus mehreren Zonen bereitgestellt wird, wählen Sie die Zone mit den geringsten Berechtigungen aus. Wenn Sie ohne voreingestellte Berechtigungen beginnen und die von der Anwendung benötigten Berechtigungen einzeln hinzufügen möchten, wählen Sie die Zone Benutzerdefiniert aus.
Nach Auswahl einer Zone wird die Liste Berechtigungen mit den Standardberechtigungen dieser Zone aktualisiert. Enthaltene Berechtigungen sind mit einem grünen Häkchen gekennzeichnet. Weitere Informationen finden Sie unter Gewusst wie: Festlegen einer Sicherheitszone für eine ClickOnce-Anwendung.
Um Berechtigungen weiter einzuschränken, können Sie einen Berechtigungssatz auswählen und seine Eigenschaften ändern. Wenn die Anwendung zum Beispiel das Dialogfeld Datei öffnen anzeigen soll, erteilt der Satz FileDialogPermission das Recht zum Anzeigen von Dialogfeldern. Dieser Berechtigungssatz ermöglicht standardmäßig sowohl die Anzeige des Dialogfelds Datei öffnen als auch des Dialogfelds Datei speichern. Um dies zu ändern, klicken Sie auf den Satz FileDialogPermission und dann auf Eigenschaften, um das Dialogfeld Berechtigungseinstellungen anzuzeigen. Legen Sie anschließend für die Berechtigung Nur öffnen fest. Weitere Informationen finden Sie unter Gewusst wie: Festlegen benutzerdefinierter Berechtigungen für eine ClickOnce-Anwendung.
Hinweis: |
---|
Die Eigenschaften variieren je nach Berechtigungssatz. Nicht alle Berechtigungssätze haben konfigurierbare Eigenschaften. |
Sie können auch Berechtigungssätze ausschließen, die nicht erforderlich sind, oder Berechtigungen aktivieren, die nicht zu den Standardberechtigungen der jeweiligen Zone gehören. Wählen Sie dazu einen Wert in der Liste Einstellung für den Berechtigungssatz aus. Berechtigungen, die geändert wurden, werden als fett formatierter Text angezeigt. Wenn eine Berechtigung aktiviert wurde, die nicht zu den Standardberechtigungen der Zone gehört, wird neben dem Häkchen für Eingeschlossen ein Informationssymbol angezeigt.
Hinweis: |
---|
Wenn Berechtigungen aktiviert werden, die nicht standardmäßig in der Zone enthalten sind, führt dies dazu, dass dem Endbenutzer die oben erwähnten Aufforderungen angezeigt werden. Wenn Sie zusätzliche Berechtigungen aktivieren, sollten Sie in den Berechtigungssatz stets nur die Berechtigungen aufnehmen, die auch tatsächlich erforderlich sind. |
Ermitteln der für eine Anwendung erforderlichen Berechtigungen
Für eine effektive Konfiguration der Sicherheitsberechtigungen ist es hilfreich, genau zu wissen, welche Berechtigungen von der Anwendung benötigt werden. Sie können das Tool Berechtigungsanalyse auf der Seite Sicherheit verwenden, um den Code zu analysieren und die von der Anwendung benötigten Berechtigungen genau zu ermitteln.
Hinweis: |
---|
Für das Tool Permission Calculator bestehen einige Einschränkungen. Das Tool führt eine statische Codeanalyse durch und kann daher keine Berechtigungen ermitteln, die für spät gebundenen Code oder dynamisch geladene Assemblys erforderlich sind. Wenn Sie eine Anwendung so entworfen haben, dass die Berechtigungsanforderungen in einer Umgebung mit weniger Berechtigungen dynamisch geändert werden, meldet das Tool außerdem die maximal erforderlichen Berechtigungen. |
Nachdem das Tool die Anwendung analysiert hat, erhalten alle erforderlichen Sätze von Berechtigungen den Status aktiviert und werden als fett formatierter Text angezeigt. Wenn eine aktivierte Berechtigung nicht zu den Standardberechtigungen einer Zone gehört, wird sie außerdem mit einem Warnsymbol gekennzeichnet. Wenn Sie nicht möchten, dass dem Endbenutzer eine Aufforderung angezeigt wird, sollten Sie diese Berechtigungen überprüfen, um zu ermitteln, ob der Code so geändert werden kann, dass die Berechtigung nicht mehr erforderlich ist.
Weitere Informationen finden Sie unter Gewusst wie: Ermitteln der Berechtigungen für eine ClickOnce-Anwendung.
Debuggen einer Anwendung mit eingeschränkten Berechtigungen
Als Entwickler arbeiten Sie an Ihrem Entwicklungscomputer höchstwahrscheinlich mit Berechtigungen für volle Vertrauenswürdigkeit. Daher werden Ihnen beim Debuggen der Anwendung nicht dieselben Sicherheitsausnahmen angezeigt wie den Benutzern, wenn diese die Anwendung mit eingeschränkten Berechtigungen ausführen.
Um diese Ausnahmen behandeln zu können, müssen Sie die Anwendung mit denselben Berechtigungen debuggen, über die der Endbenutzer verfügt. Das Debuggen mit eingeschränkten Berechtigungen kann im Projekt-Designer auf der Seite Sicherheit aktiviert werden.
Beim Debuggen einer Anwendung mit eingeschränkten Berechtigungen werden für alle Sicherheitsanforderungen Ausnahmen ausgelöst, die auf der Seite Sicherheit nicht aktiviert wurden. Es wird eine Ausnahmen-Hilfe angezeigt, die Vorschläge zur Änderung des Codes anbietet, um die Ausnahme zu verhindern.
Darüber hinaus werden im Code-Editor durch das IntelliSense-Feature beim Schreiben von Code alle Member grau unterlegt, die nicht in den von Ihnen konfigurierten Sicherheitsberechtigungen eingeschlossen sind.
Weitere Informationen finden Sie unter Gewusst wie: Debuggen einer ClickOnce-Anwendung mit eingeschränkten Berechtigungen.
Sicherheitsberechtigungen für von einem Browser gehostete Anwendungen
Visual Studio stellt für WPF (Windows Presentation Foundation)-Anwendungen die folgenden Projekttypen zur Verfügung:
WPF-Windows-Anwendung
WPF-Webbrowseranwendung
WPF-Benutzerdefinierte Steuerelementbibliothek
WPF-Dienstbibliothek
Von diesen Projekttypen werden nur WPF-Webbrowseranwendungen von einem Webbrowser gehostet und benötigen daher spezielle Bereitstellungs- und Sicherheitseinstellungen. Diese Anwendungen verfügen über folgende Standardsicherheitseinstellungen:
ClickOnce-Sicherheitseinstellungen aktivieren
Teilweise vertrauenswürdige Anwendung
Internetzone (mit ausgewähltem Standardberechtigungssatz für WPF-Webbrowseranwendungen)
Im Dialogfeld Erweiterte Sicherheitseinstellungen ist das Kontrollkästchen Diese Anwendung mit dem ausgewählten Berechtigungssatz debuggen ausgewählt und deaktiviert. Das liegt daran, dass bei vom Browser gehosteten Anwendungen das Debuggen in einer Zone nicht deaktiviert werden kann.
Wenn WPF-Webbrowseranwendungen mittels ClickOnce bereitgestellt werden, fordern sie einen speziellen (in der Datei appname.exe.manifest gespeicherten) Satz von Berechtigungen an. Dabei handelt es sich um die Standardberechtigungen für den Berechtigungssatz der Codezugriffssicherheit für die Internetzone, zusätzlich zu zwei weiteren Berechtigungen:
Wenn Sie nicht standardmäßige Berechtigungen festlegen, zeigt Visual Studio eine Warnung an, die besagt, dass die Anwendung so konfiguriert ist, dass sie eine nicht standardmäßige Berechtigung anfordert. Wenn die Sicherheitsrichtlinie nicht bereits auf den Zielcomputer übertragen wurde, schlägt die Installation fehl.
Siehe auch
Aufgaben
Gewusst wie: Aktivieren von ClickOnce-Sicherheitseinstellungen
Gewusst wie: Festlegen einer Sicherheitszone für eine ClickOnce-Anwendung
Gewusst wie: Festlegen benutzerdefinierter Berechtigungen für eine ClickOnce-Anwendung
Gewusst wie: Ermitteln der Berechtigungen für eine ClickOnce-Anwendung
Gewusst wie: Debuggen einer ClickOnce-Anwendung mit eingeschränkten Berechtigungen
Konzepte
ClickOnce-Bereitstellung und Sicherheit
Überblick über die Bereitstellung vertrauenswürdiger Anwendungen