Freigeben über


trust-Element (ASP.NET-Einstellungsschema)

Konfiguriert die für eine Anwendung geltende Ebene der Codezugriffssicherheit. Verwenden Sie dieses Element, wenn Sie eine Webanwendung auf einer niedrigeren Vertrauensebene als Full ausführen möchten.

<trust 
   hostSecurityPolicyResolverType ="security policy resolution type"
   legacyCasModel = "[True|False]"
   level="[Full|High|Medium|Low|Minimal]" 
   originUrl="URL"
   permissionSetName = "name of the permission set"
   processRequestInApplicationTrust = "[True|False]" 
/>

Attribute und Elemente

In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.

Attribute

Attribute

Beschreibungen

hostSecurityPolicyResolverType

Optionales Zeichenfolgenattribut.

Gibt einen benutzerdefinierten Sicherheitsrichtlinien-Auflösungstyp an. Wenn dieses Attribut auf eine leere Zeichenfolge festgelegt wird, ermittelt ASP.NET die Berechtigungen einer Assembly mithilfe der Standardrichtlinie. Die Standardrichtlinie zum Auswerten der Berechtigungen gewährt volle Vertrauenswürdigkeit für die Assemblys des globalen Assemblycache (GAC) und eingeschränkte Vertrauenswürdigkeit für die anderen Assemblys.

Dieses Attribut kann nicht auf einen null-Wert festgelegt werden.

Der Standardwert ist eine leere string.

legacyCasModel

Optionales boolesches Attribut.

Gibt an, ob die Legacycodezugriffssicherheit (CAS, Code Access Security) aktiviert ist.

Wenn Legacycode-Zugriffssicherheit aktiviert ist, gelten die folgenden Sicherheitsregeln:

  • Codezugriffssicherheitsrichtlinie wird (CAS) aus der Kombination von Computerrichtlinie und der angegebenen ASP.NET-Datei der Richtlinie mit teilweiser Vertrauenswürdigkeit festgelegt.

  • Teilweise vertrauenswürdige Anwendungsdomänen werden auf der Anwendungsdomänenebene wieder als vollständig vertrauenswürdig eingestuft.

  • Die älteren, teilweise vertrauenswürdigen Dateien im CONFIG-Verzeichnis des .NET Framework-Installationsverzeichnisses werden anstelle der neuen teilweise vertrauenswürdigen Konfigurationsdateien verwendet, die im gleichen Verzeichnis enthalten sind. Die Legacydateien enthalten die Mitgliedschaftsbedingungen, die in .NET Framework, Version 1.1 oder .NET Framework 2.0 SP1 gefunden wurden.

  • Zusätzliche Mitgliedschaftsbedingungen, um Berechtigungen auszuwerten, werden übernommen. Diese Bedingungen werden in teilweise vertrauenswürdigen ASP.NET-Dateien definiert. Das CONFIG-Verzeichnis, das im Lieferumfang der .NET Framework 4-Version enthalten ist, enthält ältere, teilweise vertrauenswürdige Richtliniendateien. Diese Dateien enthalten Vorgängerelemente in ihrem Namen und enthalten die .NET Framework 2.0 SP1-Abschnitte. Diese Abschnitte enthalten nicht leere Mitgliedschaftsbedingungen, die dazu benötigt werden, CAS-Richtlinien anhand von Assemblys auszuwerten.

  • Wenn die ASP.NET-Anwendung in teilweiser Vertrauenswürdigkeit ausgeführt wird und die Sicherheitsrichtliniendatei für die Vertrauensebenen einer der Standardkonfigurationsdateien mit teilweiser Vertrauenswürdigkeit zugeordnet ist, wählt ASP.NET die entsprechende Legacykonfigurationsdatei automatisch aus. Wenn die Sicherheitsrichtlinie gewöhnlich z. B. aus "Web_mediumtrust.config" geladen werden würde, lädt ASP.NET stattdessen im Legacymodus die Sicherheitsrichtlinie aus "Legacy.web_mediumtrust.config".

Der Standardwert ist false.

level

Erforderliches String-Attribut.

Gibt die Vertrauensebene an, unter der die Anwendung ausgeführt wird. Jeder Vertrauensebene ist über das trustLevel-Element in der Konfigurationsdatei eine entsprechende XML-Richtliniendatei zugeordnet. In der Richtliniendatei sind die Berechtigungen für die jeweilige Vertrauensebene aufgeführt. Weitere Informationen über ASP.NET und Richtliniendateien finden Sie unter ASP.NET-Vertrauensebenen und Richtliniendateien.

Dieses Attribut kann ein benutzerdefinierter Wert sein, falls eine entsprechende Sicherheitsrichtlinienzuordnung in einem trustLevel-Element des securityPolicy-Element (ASP.NET-Einstellungsschema)-Elements vorliegt, oder einen der folgenden Werte annehmen. Die Werte sind in aufsteigender Reihenfolge nach dem Grad der Einschränkung angeordnet.

ValueBeschreibungen
Full Legt uneingeschränkte Berechtigungen fest.Erteilt der ASP.NET-Anwendung die Berechtigung, auf sämtliche Ressourcen zuzugreifen, die der Betriebssystemsicherheit unterliegen.Alle privilegierten Vorgänge werden unterstützt.Diese Einstellung wird in der AspNetHostingPermissionLevel-Enumeration Unrestricted genannt.
High Gibt eine hohe Ebene der Codezugriffssicherheit an. Das bedeutet, dass die Anwendung die folgenden Vorgänge standardmäßig nicht ausführen kann:
  • Aufrufen von nicht verwaltetem Code.

  • Aufrufen von Serviced Components.

  • Schreiben in das Ereignisprotokoll.

  • Zugreifen auf Microsoft Message Queuing-Warteschlangen.

  • Zugreifen auf ODBC-, OLEDB- oder Oracle-Datenquellen.

Medium Gibt eine mittlere Ebene der Codezugriffssicherheit an. Das bedeutet, dass die ASP.NET-Anwendung zusätzlich zu den Einschränkungen der Codezugriffssicherheitsebene High die folgenden Vorgänge standardmäßig nicht ausführen kann:
  • Zugreifen auf Dateien außerhalb des Anwendungsverzeichnisses.

  • Zugreifen auf die Registrierung.

  • Ausführen von Netzwerk- oder Webdienstaufrufen (z. B. mit der System.Net.HttpWebRequest-Klasse).

Low Gibt eine niedrige Ebene der Codezugriffssicherheit an. Das bedeutet, dass die Anwendung zusätzlich zu den Einschränkungen der Codezugriffssicherheitsebene Medium die folgenden Vorgänge standardmäßig nicht ausführen kann:
  • Schreiben ins Dateisystem.

  • Rufen Sie die Assert-Methode auf.

Minimal Gibt eine minimale Ebene der Codezugriffssicherheit an. Dies bedeutet, dass die Anwendung nur über Ausführungsberechtigungen verfügt.

Die Standardeinstellung ist Full (keine Einschränkungen).

originUrl

Optionales String-Attribut.

Gibt eine URL zur Verwendung mit der eingeschränkten WebPermission-Berechtigung an, die mit mittlerer Vertrauenswürdigkeit konfiguriert ist. Falls vorhanden, kann diese für Klassen wie HttpWebRequest verwendet werden, die nur Verbindungen zu URLs zulassen, die durch eine WebPermission angegeben werden. Dies ermöglicht die ordnungsgemäße Funktionsweise von Berechtigungen, die von einem Host abhängen.

permissionSetName

Optionales Zeichenfolgenattribut.

Gibt den Namen des Berechtigungssatzes an.

Der Standardwert ist "ASP.NET".

processRequestInApplicationTrust

Optionales Boolean-Attribut.

Gibt an, ob Seitenanforderungen automatisch auf die Berechtigungen beschränkt werden, die in der Vertrauensrichtliniendatei für die ASP.NET-Anwendung konfiguriert sind.

Vertrauensrichtliniendateien werden in trustLevel-Elementen im securityPolicy-Element angegeben. Eine einzelne Vertrauensrichtlinie kann über das level-Attribut des trust-Elements auf eine ASP.NET-Anwendung angewendet werden.

Wenn das Attribut auf den Wert False festgelegt wird, können ASP.NET-Anforderungen auf der Vertrauensebene Full ausgeführt werden, selbst wenn das level-Attribut eine andere Vertrauensebene angibt. Ändern Sie die Standardeinstellung true dieses Attributs nur, wenn Sie einen konkreten Grund dafür haben.

Dieses Attribut ist neu in .NET Framework, Version 2.0.

Die Standardeinstellung ist True.

Untergeordnete Elemente

Keine.

Übergeordnete Elemente

Element

Beschreibungen

configuration

Gibt das erforderliche Stammelement in jeder Konfigurationsdatei an, die von der Common Language Runtime und den .NET Framework-Anwendungen verwendet wird.

system.web

Gibt das Stammelement für die ASP.NET-Konfigurationseinstellungen in einer Konfigurationsdatei an und enthält Konfigurationselemente, die ASP.NET-Webanwendungen konfigurieren und das Verhalten der Anwendungen steuern.

Hinweise

Das trust-Element konfiguriert die für eine Anwendung geltende Ebene der Codezugriffssicherheit. Sicherheitsrichtliniendateien werden im securityPolicy-Auflistungselement den entsprechenden Vertrauensebenennamen zugeordnet. In der Richtliniendatei sind die Berechtigungen für die jeweilige Vertrauensebene aufgeführt. Das trust-Element gibt an, welche Vertrauensebene für die ASP.NET-Anwendung gilt. Weitere Informationen über ASP.NET und Richtliniendateien finden Sie unter ASP.NET-Vertrauensebenen und Richtliniendateien.

Standardmäßig werden Webanwendungen auf der Vertrauensebene Full ausgeführt. Anwendungen mit voller Vertrauenswürdigkeit erhalten von der Codezugriffssicherheitsrichtlinie uneingeschränkte Codezugriffsberechtigungen. Dazu gehören systemeigene und benutzerdefinierte Berechtigungen. Entsprechend wird die Anwendung beim Zugriff auf geschützte Ressourcen nicht durch die Codezugriffssicherheitsrichtlinien eingeschränkt. Der erfolgreiche Zugriff auf Ressourcen hängt damit rein von den Sicherheitsrichtlinien des Betriebssystems ab. Wenn eine Anwendung für eine andere Vertrauensebene als Full konfiguriert ist, bezeichnet man sie als eingeschränkt vertrauenswürdige Anwendung. Eingeschränkt vertrauenswürdige Anwendungen verfügen über eingeschränkte Berechtigungen, die den Zugriff auf geschützte Ressourcen der Anwendung begrenzen.

Um die Sicherheit in einer gehosteten Umgebung zu verbessern, verwenden Sie das location-Element in der Stammdatei Web.config, um das securityPolicy-Element und das trust-Element für gehostete Anwendungen einzuschließen, und das allowOverride="False"-Attribut, um zu verhindern, dass die Anwendungen die Einstellungen in einer lokaleren Web.config-Datei überschreiben. Wahlweise können Sie mehrere location-Elemente mit jeweils unterschiedlichen Pfadattributen verwenden, wenn Sie für die gehosteten Anwendungen verschiedene Vertrauensebenen festlegen möchten. Ein Beispiel für diese Art der Konfiguration finden Sie weiter unten unter "Beispiel".

HinweisHinweis

Mit .NET Framework, Version 1.0, erstellte Webanwendungen werden immer auf der Vertrauensebene Full ausgeführt, da die Typen in System.Web Aufrufer mit voller Vertrauenswürdigkeit erfordern.Ändern Sie beim Upgrade auf eine neuere Version von .NET Framework nicht die Vertrauensebene, ohne einen Test an bereits vorhandenen Anwendungen durchzuführen.

Standardkonfiguration

Das folgende standardmäßige trust-Element wird in der Web.config-Stammdatei konfiguriert.

<location allowOverride="true">
<system.web>
   <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low" policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
   </securityPolicy>
   <trust 
      level="Full" 
      originUrl="" 
      processRequestInApplicationTrust="true" 
   />
</system.web>
</location>

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie in einer Stammdatei Web.config die Einstellungen der Medium-Vertrauensebene für alle ASP.NET-Anwendungen auf dem Server angegeben werden und das location-Element zum Sperren der Einstellungen verwendet wird. Mithilfe eines weiteren location-Elements in derselben Konfigurationsdatei wird der Datei Web.config für die Default Web Site/Temp-Anwendung die Berechtigung erteilt, die Einstellungen in der Stammdatei Web.config zu überschreiben.

<location allowOverride="false">
  <system.web>
    <securityPolicy>
      <trustLevel name="Full" policyFile="internal" />
      <trustLevel name="High" policyFile="web_hightrust.config" />
      <trustLevel name="Medium" policyFile="web_mediumtrust.config" />
      <trustLevel name="Low"  policyFile="web_lowtrust.config" />
      <trustLevel name="Minimal" policyFile="web_minimaltrust.config"/>
    </securityPolicy>
  </system.web>
</location>

<location allowOverride="false">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

<location allowOverride="true" path="Default Web Site/Temp">
  <system.web>
    <trust level="Medium" originUrl="" />
  </system.web>
</location>

Elementinformationen

Konfigurationsabschnittshandler

TrustSection

Konfigurationsmember

AspNetHostingPermission

Konfigurierbare Speicherorte

Machine.config

Web.config auf der Stammebene

Web.config auf der Anwendungsebene

Anforderungen

Microsoft Internetinformationsdienste (IIS), Version 5.0, 5.1 oder 6.0

.NET Framework, Version 1.0, 1.1 oder 2.0

Microsoft Visual Studio 2003 oder Visual Studio 2005

Siehe auch

Aufgaben

Gewusst wie: Konfigurieren von bestimmten Verzeichnissen mit Standorteinstellungen

Gewusst wie: Sperren von ASP.NET-Konfigurationseinstellungen

Referenz

system.web-Element (ASP.NET-Einstellungsschema)

configuration-Element (allgemeines Einstellungsschema)

trustLevel-Element für securityPolicy (ASP.NET-Einstellungsschema)

securityPolicy-Element (ASP.NET-Einstellungsschema)

System.Configuration

System.Net.Configuration

TrustSection

AspNetHostingPermission

Konzepte

ASP.NET-Vertrauensebenen und Richtliniendateien

ASP.NET-Vertrauensebenen und Richtliniendateien

Verwalten der Sicherheitsrichtlinien

Absichern der ASP.NET-Konfiguration

ASP.NET-Konfigurationsszenarios

Weitere Ressourcen

Sicherheit für ASP.NET-Webanwendungen

Allgemeine Konfigurationseinstellungen (ASP.NET)

ASP.NET-Konfigurationseinstellungen

ASP.NET-Websiteverwaltung

ASP.NET-Konfigurationsdateien

ASP.NET-Konfigurations-API