Gewusst wie: Sperren von ASP.NET-Konfigurationseinstellungen

Aktualisiert: November 2007

In der Standardeinstellung werden die Konfigurationseinstellungen, die in übergeordneten Konfigurationsdateien deklariert sind, von den in Unterverzeichnissen enthaltenen ASP.NET-Konfigurationsdateien überschrieben und erweitert. Beim Hosten von Anwendungen können Sie bestimmte Einstellungen einer ASP.NET-Anwendung sperren, um Änderungen auf untergeordneten Ebenen zu verhindern. So können Sie zum Beispiel die Sicherheitseinstellungen einer gehosteten Anwendung sperren, damit diese nicht versehentlich von einem Administrator geändert werden.

Sie können die Konfigurationseinstellungen in ASP.NET-Konfigurationsdateien (d. h. in den Dateien Web.config) sperren, indem Sie einem location-Element ein allowOverride-Attribut hinzufügen und das allowOverride-Attribut auf false festlegen. Anschließend können Sie innerhalb des location-Elements den Konfigurationsabschnitt definieren, den Sie sperren möchten. Aufgrund dieser Sperrung löst ASP.NET nun eine Ausnahme aus, sobald eine andere Konfigurationsdatei einen Konfigurationsabschnitt zu überschreiben versucht, der im gesperrten location-Element definiert ist.

Wenn Sie ein location-Element mit einem allowOverride=false-Attribut verwenden, wird der gesamte Konfigurationsabschnitt gesperrt. Sie können auch einzelne Konfigurationselemente und Attribute sperren, indem Sie lockItem, lockElements, lockAttributes, lockAllAttributesExcept und lockAllElementsExcept verwenden. Weitere Informationen finden Sie unter Allgemeine von Abschnittselementen geerbte Attribute.

Das folgende Codebeispiel zeigt einen Ausschnitt aus einer Datei Web.config, in der die Vertrauensebene von zwei verschiedenen ASP.NET-Anwendungen gesperrt wird: application1 und application2. Jeder Versuch, die Konfigurationseinstellungen im trust-Konfigurationsabschnitt zu überschreiben, löst einen Konfigurationssystemfehler aus.

<configuration>
  <location path="application1" allowOverride="false">
    <system.web>
      <trust level="High" />
    </system.web>
  </location>

  <location path="application2" allowOverride="false">
    <system.web>
      <trust level="Medium" />
    </system.web>
  </location>
</configuration>

Community-Beiträge

Anzeigen: