Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Dieser Inhalt gilt nur für .NET Framework, sofern nicht anders angegeben.
Vor der Veröffentlichung von .NET Framework hatten alle auf dem Computer eines Benutzers ausgeführten Code die gleichen Rechte oder Berechtigungen für den Zugriff auf Ressourcen, die ein Benutzer des Computers hatte. Wenn der Benutzer beispielsweise auf das Dateisystem zugreifen darf, konnte der Code auf das Dateisystem zugreifen; Wenn der Benutzer auf eine Datenbank zugreifen darf, konnte der Code auf diese Datenbank zugreifen. Obwohl diese Rechte oder Berechtigungen für Code in ausführbaren Dateien akzeptabel sein können, die der Benutzer explizit auf dem lokalen Computer installiert hat, kann er für potenziell schädlichen Code, der aus dem Internet oder einem lokalen Intranet stammt, nicht akzeptabel sein. Dieser Code sollte nicht ohne Berechtigung auf die Computerressourcen des Benutzers zugreifen können.
.NET Framework führt eine Infrastruktur mit dem Namen Code Access Security ein, mit der Sie die Berechtigungen oder Rechte des Codes von den Rechten unterscheiden können, die der Benutzer hat. Standardmäßig kann Code aus dem Internet und dem Intranet nur mit teilweisem Vertrauen ausgeführt werden. Eine teilweise vertrauenswürdige Anwendung unterliegt einer Reihe von Einschränkungen: Unter anderem ist eine Anwendung auf den Zugriff auf die lokale Festplatte beschränkt, und sie kann keinen nicht verwalteten Code ausführen. Das .NET Framework steuert die Ressourcen, auf die Code basierend auf der Identität dieses Codes zugreifen darf: wo er stammt, ob es über eine Strong-Named Assemblys verfügt, ob er mit einem Zertifikat signiert ist usw.
Die ClickOnce-Technologie, die Sie zum Bereitstellen von Windows Forms-Anwendungen verwenden, erleichtert Ihnen die Entwicklung von Anwendungen, die in einem partiellen Vertrauensbereich, in voller Vertrauen oder in einem partiellen Vertrauensbereich mit erhöhten Berechtigungen ausgeführt werden. ClickOnce bietet Features wie Berechtigungserweiterung und vertrauenswürdige Anwendungsbereitstellung, sodass Ihre Anwendung voll vertrauenswürdige oder erhöhte Berechtigungen vom lokalen Benutzer auf verantwortungsvolle Weise anfordern kann.
Grundlegendes zur Sicherheit in .NET Framework
Die Codezugriffssicherheit erlaubt, dass Code in unterschiedlichem Maße vertraut wird, abhängig davon, woher der Code herkommt und welche anderen Aspekte seine Identität betreffen. Weitere Informationen zu den Nachweisen, die die Common Language Runtime zum Ermitteln der Sicherheitsrichtlinie verwendet, finden Sie unter "Nachweise". Sie schützt Computersysteme vor bösartigem Code und schützt vertrauenswürdigen Code vor absichtlicher oder versehentlich kompromittierender Sicherheit. Die Codezugriffssicherheit bietet Ihnen auch mehr Kontrolle darüber, welche Aktionen Ihre Anwendung ausführen kann, da Sie nur die Berechtigungen angeben können, über die Ihre Anwendung verfügen muss. Die Codezugriffssicherheit wirkt sich auf alle verwalteten Code aus, der auf die Common Language Runtime ausgerichtet ist, auch wenn dieser Code keine einzige Codezugriffssicherheitsprüfung durchführt. Weitere Informationen zur Sicherheit in .NET Framework finden Sie unter Schlüsselsicherheitskonzepte und Codezugriffssicherheitsgrundlagen.
Wenn der Benutzer eine ausführbare Windows Forms-Datei direkt von einem Webserver oder einer Dateifreigabe aus ausführt, hängt der Vertrauensgrad der Anwendung davon ab, wo sich der Code befindet und wie er gestartet wird. Wenn eine Anwendung ausgeführt wird, wird sie automatisch ausgewertet und erhält einen benannten Berechtigungssatz aus der Common Language Runtime. Standardmäßig wird dem Code vom lokalen Computer der Berechtigungssatz "Voll vertrauenswürdig" gewährt, dem Code aus einem lokalen Netzwerk wird der Berechtigungssatz "Lokales Intranet" gewährt, und der Code aus dem Internet erhält den Internetberechtigungssatz.
Hinweis
In .NET Framework, Version 1.0 Service Pack 1 und Service Pack 2, erhält die Codegruppe der Internetzone den Berechtigungssatz Nothing. In allen anderen Versionen von .NET Framework erhält die Internetzonencodegruppe den Satz der Internetberechtigungen.
Die in jedem dieser Berechtigungssätze gewährten Standardberechtigungen werden im Thema "Standardsicherheitsrichtlinie " aufgeführt. Abhängig von den Berechtigungen, die die Anwendung empfängt, wird sie entweder ordnungsgemäß ausgeführt oder generiert eine Sicherheits ausnahme.
Viele Windows Forms-Anwendungen werden mithilfe von ClickOnce bereitgestellt. Die tools, die zum Generieren einer ClickOnce-Bereitstellung verwendet werden, weisen unterschiedliche Sicherheitsstandardwerte auf als die zuvor erläuterten. Weitere Informationen finden Sie in der folgenden Diskussion.
Die tatsächlichen Berechtigungen, die Ihrer Anwendung gewährt werden, können sich von den Standardwerten unterscheiden, da die Sicherheitsrichtlinie geändert werden kann; Dies bedeutet, dass Ihre Anwendung die Berechtigung auf einem Computer, aber nicht auf einem anderen Computer haben kann.
Entwickeln einer sichereren Windows Forms-Anwendung
Sicherheit ist in allen Schritten der Anwendungsentwicklung wichtig. Beginnen Sie, indem Sie die Richtlinien für sicheres Codieren überprüfen und befolgen.
Entscheiden Sie als Nächstes, ob Ihre Anwendung voll vertrauenswürdig ausgeführt werden muss oder ob sie teilweise vertrauenswürdig ausgeführt werden soll. Das Ausführen Ihrer Anwendung im Vollvertrauensmodus erleichtert den Zugriff auf Ressourcen auf dem lokalen Computer, macht Ihre Anwendung und ihre Benutzer jedoch anfällig für hohe Sicherheitsrisiken, wenn Sie Ihre Anwendung nicht streng gemäß den "Secure Coding Guidelines" entwerfen und entwickeln. Das Ausführen Ihrer Anwendung in teilweiser Vertrauensstellung erleichtert die Entwicklung einer sichereren Anwendung und reduziert viel Risiko, erfordert jedoch mehr Planung in der Implementierung bestimmter Features.
Wenn Sie eine teilweise Vertrauensstellung auswählen (d. h. entweder die Internet- oder lokale Intranetberechtigungssätze), entscheiden Sie, wie sich Ihre Anwendung in dieser Umgebung verhalten soll. Windows Forms bietet alternative und sicherere Methoden zum Implementieren von Features in einer halb vertrauenswürdigen Umgebung. Bestimmte Teile Ihrer Anwendung, z. B. datenzugriff, können sowohl für teilweise vertrauenswürdige als auch für voll vertrauenswürdige Umgebungen unterschiedlich gestaltet und geschrieben werden. Einige Windows Forms-Features, z. B. Anwendungseinstellungen, sind so konzipiert, dass sie teilweise vertrauenswürdig sind. Weitere Informationen finden Sie unter "Übersicht über Anwendungseinstellungen".
Wenn Ihre Anwendung mehr Berechtigungen als die eines Teilvertrauens benötigt, Sie jedoch nicht im Vollvertrauensmodus ausführen möchten, können Sie im Teilvertrauensmodus laufen und nur die zusätzlich erforderlichen Berechtigungen festlegen. Wenn Sie z. B. Ihre Anwendung in teilweisen Vertrauensstellungen ausführen möchten, aber schreibgeschützten Zugriff auf ein Verzeichnis im Dateisystem des Benutzers gewähren müssen, können Sie den Zugriff nur für dieses Verzeichnis anfordern FileIOPermission. Dieser Ansatz kann Ihrer Anwendung eine höhere Funktionalität bieten und Sicherheitsrisiken für Ihre Benutzer minimieren.
Wenn Sie eine Anwendung entwickeln, die in einer Umgebung mit eingeschränktem Vertrauen ausgeführt wird, achten Sie darauf, welche Berechtigungen Ihre Anwendung erfordert und welche Berechtigungen sie gegebenenfalls nutzen kann. Wenn alle Berechtigungen bekannt sind, sollten Sie eine deklarative Anforderung für die Berechtigung auf Anwendungsebene stellen. Das Anfordern von Berechtigungen informiert die .NET Framework-Laufzeit darüber, welche Berechtigungen Ihre Anwendung benötigt und welche Berechtigungen sie speziell nicht benötigen. Weitere Informationen zum Anfordern von Berechtigungen finden Sie unter Anfordern von Berechtigungen.
Wenn Sie optionale Berechtigungen anfordern, müssen Sie Sicherheitsausnahmen behandeln, die auftreten können, wenn Ihre Anwendung eine Aktion ausführt, die Berechtigungen erfordert, die ihm nicht erteilt wurden. Die geeignete Handhabung des SecurityException stellt sicher, dass Ihre Anwendung weiterhin ausgeführt werden kann. Ihre Anwendung kann die Ausnahme verwenden, um zu bestimmen, ob ein Feature für den Benutzer deaktiviert werden soll. Beispielsweise kann eine Anwendung die Menüoption " Speichern " deaktivieren, wenn die erforderliche Dateiberechtigung nicht gewährt wird.
Manchmal ist es schwierig zu wissen, ob Sie alle entsprechenden Berechtigungen bestätigt haben. Ein Methodenaufruf, der unauffällig auf der Oberfläche aussieht, kann z. B. zu einem bestimmten Zeitpunkt während der Ausführung auf das Dateisystem zugreifen. Wenn Sie Ihre Anwendung nicht mit allen erforderlichen Berechtigungen bereitstellen, kann sie beim Debuggen auf dem Desktop einwandfrei getestet werden, schlägt jedoch fehl, wenn sie bereitgestellt wird. Sowohl das .NET Framework 2.0 SDK als auch Visual Studio 2005 enthalten Tools zum Berechnen der Berechtigungen, die eine Anwendung benötigt: das Befehlszeilentool MT.exe bzw. das Feature "Berechtigungen berechnen" von Visual Studio.
In den folgenden Themen werden zusätzliche Windows Forms-Sicherheitsfeatures beschrieben.
| Thema | BESCHREIBUNG |
|---|---|
| - Sichererer Datei- und Datenzugriff in Windows Forms | Beschreibt, wie sie in einer teilweise vertrauenswürdigen Umgebung auf Dateien und Daten zugreifen. |
| - Sichereres Drucken in Windows Forms | Beschreibt, wie Sie in einer teilweise vertrauenswürdigen Umgebung auf Druckfeatures zugreifen. |
| - Zusätzliche Sicherheitsüberlegungen in Windows Forms | Beschreibt das Ausführen von Fenstermanipulationen, die Verwendung der Zwischenablage und das Aufrufen nicht verwalteten Codes in einer Umgebung mit eingeschränktem Vertrauen. |
Bereitstellen einer Anwendung mit den entsprechenden Berechtigungen
Die am häufigsten verwendete Möglichkeit zum Bereitstellen einer Windows Forms-Anwendung auf einem Clientcomputer ist clickOnce, eine Bereitstellungstechnologie, die alle Komponenten beschreibt, die Ihre Anwendung ausführen muss. ClickOnce verwendet XML-Dateien, die als Manifeste bezeichnet werden, um die Assemblys und Dateien zu beschreiben, aus denen Ihre Anwendung besteht, sowie die berechtigungen, die Ihre Anwendung benötigt.
ClickOnce verfügt über zwei Technologien zum Anfordern von erhöhten Berechtigungen auf einem Clientcomputer. Beide Technologien basieren auf der Verwendung von Authenticode-Zertifikaten. Die Zertifikate bieten Ihren Benutzern eine gewisse Sicherheit, dass die Anwendung von einer vertrauenswürdigen Quelle stammt.
In der folgenden Tabelle werden diese Technologien beschrieben.
| Technologie mit erweiterten Zugriffsrechten | BESCHREIBUNG |
|---|---|
| Berechtigungserweiterung | Fordert den Benutzer bei der ersten Ausführung der Anwendung mit einem Sicherheitsdialogfeld auf. Das Dialogfeld "Berechtigungserweiterung " informiert den Benutzer darüber, wer die Anwendung veröffentlicht hat, damit der Benutzer eine fundierte Entscheidung darüber treffen kann, ob er ihm zusätzliche Vertrauensstellung erteilen soll. |
| Vertrauenswürdige Anwendungsbereitstellung | Umfasst einen Systemadministrator, der eine einmalige Installation des Authenticode-Zertifikats eines Herausgebers auf einem Clientcomputer durchführt. Von diesem Punkt an gelten alle mit dem Zertifikat signierten Anwendungen als vertrauenswürdig und können ohne zusätzliche Aufforderung auf dem lokalen Computer voll vertrauenswürdig ausgeführt werden. |
Welche Technologie Sie auswählen, hängt von Ihrer Bereitstellungsumgebung ab. Weitere Informationen finden Sie unter Auswählen einer ClickOnce-Bereitstellungsstrategie.
Standardmäßig werden ClickOnce-Anwendungen, die mit Visual Studio oder den .NET Framework SDK-Tools (Mage.exe und MageUI.exe) zum Einsatz kommen, so konfiguriert, dass sie auf einem Clientcomputer ausgeführt werden, der vollständiges Vertrauen hat. Wenn Sie Ihre Anwendung mithilfe einer teilweisen Vertrauensstellung oder nur mit einigen zusätzlichen Berechtigungen bereitstellen, müssen Sie diese Standardeinstellung ändern. Sie können dies entweder mit Visual Studio oder dem .NET Framework SDK-Tool MageUI.exe tun, wenn Sie die Bereitstellung konfigurieren. Weitere Informationen zur Verwendung von MageUI.exefinden Sie unter Walkthrough: Manually deploying a ClickOnce application. Weitere Informationen finden Sie unter Wie man: Benutzerdefinierte Berechtigungen für eine ClickOnce-Anwendung festlegt oder Wie man: Benutzerdefinierte Berechtigungen für eine ClickOnce-Anwendung festlegt.
Weitere Informationen zu den Sicherheitsaspekten von ClickOnce und Berechtigungserweiterung finden Sie unter Sichern von ClickOnce-Anwendungen. Weitere Informationen zur Bereitstellung vertrauenswürdiger Anwendungen finden Sie unter Übersicht über die Bereitstellung vertrauenswürdiger Anwendungen.
Testen der Anwendung
Wenn Sie Ihre Windows Forms-Anwendung mithilfe von Visual Studio bereitgestellt haben, können Sie das Debuggen in teilweiser Vertrauensstellung oder einem eingeschränkten Berechtigungssatz aus der Entwicklungsumgebung aktivieren. Weitere Informationen finden Sie unter How to: Debuggen einer ClickOnce-Anwendung mit eingeschränkten Berechtigungen.
Siehe auch
- Sicherheit in Windows Forms
- Grundlagen der Codezugriffssicherheit
- ClickOnce-Sicherheit und Bereitstellung
- Übersicht über die Bereitstellung vertrauenswürdiger Anwendungen
- Mage.exe (Manifesterstellungs- und Bearbeitungswerkzeug)
- MageUI.exe (Manifestgenerierungs- und Bearbeitungstool, grafischer Client)
.NET Desktop feedback