Anwendungsdomänenhosts
Jede .NET Framework-Anwendung wird in einer Anwendungsdomäne ausgeführt und von einem Host gesteuert, der die Anwendungsdomäne erstellt und Assemblys in diese lädt. Der Host kann auf Informationen über den Code (Beweise) zugreifen. Dabei kann es sich z. B. um die Zone handeln, aus der der Code stammt, oder um die digitalen Signaturen der Assemblys in der Anwendungsdomäne. Vertrauenswürdige Hosts verfügen über die Berechtigung, diese Art von Informationen an die Common Language Runtime zu übermitteln. Die von Hosts verwendeten Anwendungsdomänenfunktionen werden von der System.AppDomain-Klasse bereitgestellt.
In der folgenden Tabelle werden die Typen von Anwendungshosts beschrieben.
Anwendungsdomänenhost | Beschreibung |
---|---|
Browserhost (z. B. Microsoft Internet Explorer) |
Führt Code im Kontext einer Website aus. |
Benutzerdefinierte Hosts |
Erstellt Domänen und lädt Assemblys (einschließlich dynamischer Assemblys) in Domänen. Kann in verwaltetem oder nicht verwaltetem Code geschrieben werden. |
Serverhost (z. B. ASP.NET) |
Führt Code aus, der an einen Server übermittelte Anforderungen behandelt. |
Shellhost |
Startet Anwendungen (EXE-Dateien) aus der Shell. |
Nach dem Erstellen einer neuen Anwendungsdomäne kann ein Host die innerhalb der Anwendungsdomäne auf Code anzuwendenden Richtlinien festlegen. Diese Richtlinien müssen immer die Organisations-, Computer- und Benutzerrichtlinien berücksichtigen. Ein Host kann den durch Computer- und Benutzerrichtlinien zugelassenen Berechtigungssatz einschränken, jedoch nicht erweitern. Richtlinien können für eine Anwendungsdomäne nur einmal festgelegt werden. Dem Host müssen zum Festlegen von Anwendungsdomänenrichtlinien die Sicherheitsberechtigungen für die Steuerung von Domänenrichtlinien zugewiesen sein. Diese werden von der SecurityPermission-Klasse bereitgestellt.
Nachdem Anwendungsdomänenrichtlinien festgelegt sind, werden sämtliche Berechtigungen für nachfolgend geladene Assemblys auf der Grundlage der neuen Richtlinien (Organisations-, Computer-, Benutzer- und Anwendungsdomänenrichtlinien) erteilt. Zuvor geladenen Assemblys werden Berechtigungen nach den bisher gültigen Richtlinien (nur Organisations-, Computer- und Benutzerrichtlinien) gewährt. Die diesen Assemblys gewährten Berechtigungen werden nicht nach den neuen Anwendungsdomänenrichtlinien neu ausgewertet.
Ein vertrauenswürdiger Host kann der Laufzeit Informationen (Beweise) zu Assemblys bereitstellen, die in die Anwendungsdomäne geladen werden. Wenn eine Domäne nicht über die entsprechende SecurityPermission zum Steuern von Beweisen verfügt, bestimmt die Laufzeit anhand der auf diesem Host erzwungenen Sicherheit die Sicherheit, die für die Assembly erzwungen werden muss.
In einigen Situationen werden Beweise, die normalerweise von einem vertrauenswürdigen Anwendungsdomänenhost bereitgestellt werden, vom Ladeprogramm bereitgestellt. Nachdem eine Anwendungsdomäne erstellt wurde, lädt der Anwendungsdomänenhost die erste (Haupt-)Assembly in die Anwendungsdomäne und startet die Ausführung durch einen Aufruf in dieser Assembly. Wenn Code in der ersten Assembly auf Code in einer anderen Assembly verweist, löst das Ladeprogramm den Verweis auf, lädt die entsprechende Assembly in die Anwendungsdomäne und stellt der Laufzeit die Beweise zu der Assembly bereit. In dieser Situation stellt der vertrauenswürdige Anwendungsdomänenhost, der den Beweis für die ursprüngliche Assembly bereitgestellt hat, keine Beweise für nachfolgend geladene Assemblys bereit.