<configuration> | |
<configuration> </configuration> | |
Das Stammelement für alle Konfigurationsdateien. Dieses Element ist erforderlich. |
|
Einsatzbereich | |
Alle |
|
Attribute | |
Keine | |
<appSettings> | |
<appSettings> </appSettings> | |
Das Element <appSettings> kann verwendet werden, um individuelle Anwendungseinstellungen in Form von Schlüssel-/Wertpaaren zu konfigurieren. Diese Einstellungen können später zur Laufzeit über die Eigenschaft AppSettings der Klasse ConfigurationSettings abgerufen werden (siehe folgendes Beispiel). Diese Eigenschaft ist gemeinsam genutzt (statisch) und erfordert vor dem Zugriff keine Instanziierung der Klasse ConfigurationSettings. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
Keine | |
Untergeordnete Elemente
|
|
Beispiel | |
Der folgende Ausschnitt aus einer web.config-Datei legt ein Schlüssel-/Wertpaar auf Anwendungsebene fest: <configuration> <appSettings> <add key="applicationConfigKey" value="bar"/> </appSettings> </configuration> |
|
Die folgende ASP.NET-Seite ruft den Wert ab, der im vorangegangenen Code festgelegt wurde, und ruft außerdem einen Wert ab, der auf machine.config-Ebene festgelegt wurde: <%@ Page Language="VB" %> <html> <head> <script runat="server"> Sub Page_Load( ) Message1.Text &= _ ConfigurationSettings.AppSettings("machineConfigKey") Message2.Text &= _ ConfigurationSettings.AppSettings("applicationConfigKey") End Sub </script> </head> <body> <asp:label id="Message1" runat="server">Machine.Config setting: </asp:label> <br/> <asp:label id="Message2" runat="server">Web.Config setting: </asp:label> </body> </html> |
|
Hinweise | |
Wie im Beispiel gezeigt, kann das Element <appSettings> getrennt vom Element <system.web> und den ihm untergeordneten Elementen verwendet werden. Überlegen Sie sich aus Gründen der Sicherheit gut, welche Arten von Daten mit dem Element <appSettings> gespeichert werden sollen. Zwar ist die Laufzeitumgebung von ASP.NET so eingerichtet, dass die web.config-Datei einer Anwendung weder angefordert noch gelesen werden darf, aber dennoch ist der Zugriff auf diese Datei denkbar, wenn die Sicherheit des Webservers auf andere Weise gefährdet ist. Daher sollten Sie prinzipiell keine vertraulichen Informationen wie Benutzernamen und Kennwörter oder Verbindungsstrings, in denen Benutzername und Kennwort enthalten sind, in der Datei web.config ablegen. Eine etwas bessere, wenn auch noch immer nicht sichere Alternative ist es, derartige Informationen in machine.config abzulegen, da diese Datei nicht Teil des Webspace der Anwendung ist und somit im Falle eines Angriffs auf IIS besser geschützt ist. Bedenken Sie aber, dass diese Daten allen Anwendungen auf dem Rechner zur Verfügung stehen. |
<system.web> | |
<system.web> </system.web> | |
Container-Element für alle Elemente, die in web.config-Dateien verwendet werden. |
|
Einsatzbereich | |
Alle |
|
Attribute | |
Keine | |
Untergeordnete Elemente | |
<authentication>, <authorization>, <browserCaps>, <clientTarget>, <compilation>, <customErrors>, <globalization>, <httpHandlers>, <httpModules>, <httpRuntime>, <identity>, <iisFilter>, <machineKey>, <pages>, <processModel>, <securityPolicy>, <sessionState>, <trace>, <trust>, <webServices> |
|
Hinweise | |
Dieses Element ist erforderlich, damit ihm untergeordnete Elemente verwendet werden können. |
<authentication> | |
<authentication> </authentication> | |
Bietet Attribute und enthält untergeordnete Elemente, die zur Konfiguration von Authentifizierungsoptionen in ASP.NET verwendet werden. |
|
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute
|
|
Untergeordnete Elemente | |
<forms>, <passport> |
|
Beispiel | |
Das folgende Beispiel konfiguriert die Seiten im Geltungsbereich der Konfigurationsdatei so, dass die Authentifizierung auf der Grundlage von ASP.NET-Formularen erfolgt: <configuration> <system.web> <authentication mode="Forms"> <forms name="myAuthCookie" loginUrl="login.aspx" protection="All" timeout="30" path="/" /> </authentication> </system.web> </configuration> |
|
Hinweise | |
Anhand des Elements <location> kann bei Bedarf die Authentifizierung auf Rechnerebene konfiguriert werden und anhand seines Attributs allowOverride lässt sich verhindern, dass diese Einstellungen in einzelnen Anwendungen außer Kraft gesetzt werden. Authentifizierung ist ein äußerst komplexes Thema. Weitere Informationen zu den verschiedenen Authentifizierungsverfahren in ASP.NET und ihre Beziehung zur IIS-Authentifizierung finden Sie in Kapitel 9. |
<forms> | |
<forms loginUrl=String name=String path=String protection="All|None|Encryption|Validation" timeout=Integer> </forms> | |
Bietet Attribute und ein untergeordnetes Element (<credentials>), um ASP.NET für die formularbasierte Authentifizierung zu konfigurieren. |
|
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute | |
|
|
Untergeordnete Elemente | |
<credentials> |
|
Beispiel | |
Siehe das Beispiel für das Element <authentication>. |
|
Hinweise | |
Die formularbasierte Authentifizierung liefert nur wirksame Ergebnisse, wenn sie in Verbindung mit dem Element <authorization> eingesetzt wird, um anonymen Benutzern den Zugriff auf Seiten innerhalb der Anwendung zu verwehren. Es empfiehlt sich, eine SSL-Verschlüsselung einzusetzen, um die Authentifizierungsdaten aus dem Formular und das Cookie vor unerlaubtem Auslesen zu schützen. Falls Sie SSL nicht verwenden können oder wollen, sollten Sie wenigstens den Standardwert für die Zeitüberschreitung (Timeout) senken, da so die Wahrscheinlichkeit sinkt, dass jemand das Authentifizierungs-Cookie abfängt und die dazugehörige Identität annimmt. |
<credentials> | |
<credentials passwordFormat="Clear|SHA1|MD5"> </credentials> | |
Ermöglicht die Speicherung eines oder mehrerer Sätze von Anmeldedaten in der Konfigurationsdatei der Anwendung (oder des Rechners). Diese Daten werden später bei Authentifizierungsanforderungen verwendet. Im untergeordneten Element <user> werden die eigentlichen Anmeldedaten abgelegt. |
|
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute | |
|
|
Untergeordnete Elemente | |
<user> |
|
Beispiel | |
Das Beispiel demonstriert, wie über das Element <credentials> zwei Benutzerkonten gespeichert werden, die dann zur Authentifizierung herangezogen werden können: <credentials passwordFormat = "SHA1"> <user name="foo" password="794ED3D18464BAFF93F8DED1CFD00D9A2D9FE316"/> <user name="bar" password="B7CDD2A2B0F05E6948E5CEED22FA9A38EB28DEC8"/> </credentials> |
|
Hinweise | |
Sobald Sie die Anmeldedaten gespeichert haben, können Sie sie zur Authentifizierung verwenden, indem Sie die statische (gemeinsam genutzte) Authenticate-Methode der Hilfsklasse FormsAuthentication aufrufen. Mit der statischen (gemeinsam genutzten) Methode HashPasswordForStoringInConfigFile von FormsAuthentication können Sie einen MD5- oder SHA1-Hash des Kennworts erzeugen, der dann im <user>-Element abgelegt werden kann. Wenn Sie Anmeldedaten im Element <credentials> speichern, sollten Sie immer einen Hash der Kennwörter erstellen, da das Ablegen der Kennwörter im Klartext ein Sicherheitsrisiko darstellt. Zwar dürfte es theoretisch niemandem möglich sein, die Konfigurationsdatei zu lesen, aber durch eine fehlerhafte Konfiguration des Servers oder eine Sicherheitslücke könnte der Zugriff auf diese Datei möglich werden. |
<user> | |
<user> |
|
Speichert Benutzernamen und Kennwort für jeden Benutzer, der im <credentials>-Element definiert ist. |
|
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Siehe das Beispiel für das Element <credentials>. |
|
Hinweise | |
Zum Hashen eines Kennworts, dass im password-Attribut abgelegt ist, sollten Sie immer die Methode HashPasswordForStoringInConfigFile verwenden. Eine Utility-Seite, die SHA1- oder MD5-Hashes aus Klartext-Kennwörtern erzeugt, finden Sie in den Beispielen in Kapitel 9. |
<passport> | |
<passport redirectUrl=Url /> | |
Dieses optionale Element konfiguriert eine interne URL, zu der nicht authentifizierte Anforderungen umgeleitet werden, wenn der Microsoft Passport-Authentifizierungsdienst verwendet wird. Dieses Element sollte nur verwendet werden, wenn das Attribut mode des Elements <authentication> auf Passport gesetzt ist. |
|
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Dieses Beispiel zeigt eine web.config-Datei, die eine Anwendung für die Passport-Authentifizierung konfiguriert: <configuration> <system.web> <authentication mode="Passport"> <passport redirectUrl="Login.aspx"/> </authentication> </system.web> </configuration> |
|
Hinweise | |
Weitere Informationen zur Konfiguration der Passport-Authentifizierung finden Sie in der Dokumentation des Passport-SDK unter http://www.passport.com. |
<allow> | |
Gibt Benutzer, Rollen und/oder HTTP-Verben an, die für die Anwendung autorisiert werden sollen. |
|
Einsatzbereich | |
Beliebig |
|
Attribute
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Siehe das Beispiel für das Element <authorization>. |
|
Hinweise | |
Sie können zwei Stellvertreterzeichen verwenden, um spezielle Benutzergruppen anzugeben:
|
<deny> | |
Gibt Benutzer, Rollen und/oder HTTP-Verben an, denen die Autorisierung für die Anwendung verwehrt werden soll. |
|
Einsatzbereich | |
Beliebig |
|
Attribute
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Siehe das Beispiel für das Element <authorization>. |
|
Hinweise | |
Die gleichen Stellvertreterzeichen wie beim Element <allow> können auch beim Element <deny> verwendet werden. Wenn anonymen (nicht authentifizierten) Benutzern der Zugriff verwehrt werden soll, setzen Sie den Wert des users-Attributs des Elements <deny> auf ?. |
<browserCaps> | |
<browserCaps> <result type=className /> <use var=serverVarName /> property1=value property2=value propertyN=value <filter match=string> property1=value property2=value propertyN=value </filter> <filter match=string> <filter match=string with=expressionToSearch> property1=value property2=value propertyN=value </filter> </filter> <filter> <case match=string> property1=value property2=value propertyN=value </case> <case match=string> property1=value property2=value propertyN=value </case> </filter> </browserCaps> | |
Steuert die Konfiguration der Komponente "Browser-Merkmale", die von der Eigenschaft Response.Browser zurückgegeben wird. Die Eigenschafts-/Wertpaare unter dem <use>-Element konfigurieren die Standardwerte für die Eigenschaften der Komponente "Browser-Merkmale". Die Eigenschafts-/Wertpaare in den <filter>-Elementen aktualisieren diese Eigenschaften basierend auf einer Übereinstimmung zwischen den Stringwerten, die für das Attribut match des <case>-Elements angegeben werden, und dem Attribut var des <use>-Elements (das in der Regel auf HTTP_USER_AGENT gesetzt wird). |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
Keine | |
Untergeordnete Elemente | |
<result>, <use>, <filter> |
|
Beispiel | |
Die Konfigurationsdatei machine.config enthält die Standardeinstellungen für das <browserCaps>-Element. Anhand der Standardeinstellungen lässt sich die Änderung oder Aktualisierung dieses Elements am besten verdeutlichen. |
|
Hinweise | |
Im Wesentlichen dienen dieses Konfigurationselement und seine untergeordneten Elemente dazu, neue Browsertypen hinzuzufügen und die Merkmale dieser Browser zu aktualisieren. Eine Seite, die die Komponente "Browser-Merkmale" aufruft, erhält somit genaue Informationen über die Leistungsmerkmale des Browsers, über den die aktuelle Anforderung gesendet wurde. |
<result> | |
<result type=className /> | |
Gibt die Klasse an. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Hinweise | |
In den meisten Fällen kann der Standardtyp von System.Web.HttpBrowserCapabilities übernommen werden. Wenn Sie zusätzlich zu den durch die Klasse HttpBrowserCapabilities definierten Eigenschaften weitere Eigenschaften hinzufügen möchten, können Sie eine eigene Klasse erstellen (abgeleitet von HttpCapabilitiesBase oder HttpBrowserCapabilities) und diese über das Element <result> nutzen. |
<use> | |
<use var=serverVariableName as=aliasName /> | |
Legt den Namen der Servervariablen fest, die bei der Auswertung der Browser-Merkmale verwendet werden soll. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Hinweise | |
Das <use>-Element wird von Eigenschafts-/Wertpaaren gefolgt, die die Standardeigenschaften für die Komponente "Browser-Merkmale" angibt, wenn innerhalb des match-Attributs eines <filter>-Elements (oder dem seines untergeordneten <case>-Elements) keine Entsprechung gefunden wird. Diese Verwendung in der Beschreibung des <browserCaps>-Elements verdeutlicht. |
<filter> | |
<filter match=string> property1=value property2=value propertyN=value </filter> <filter match=string> <filter match=string with=expressionToSearch> property1=value property2=value propertyN=value </filter> </filter> <filter> <case match=string> property1=value property2=value propertyN=value </case> <case match=string> property1=value property2=value propertyN=value </case> </filter> | |
Gibt ein Muster für einen regulären Ausdruck an, nach dem in der im <use>-Element angegebenen Servervariablen gesucht werden soll (oder optional einen anderen Ausdruck). Im <browserCaps>-Element können mehrere <filter>-Elemente enthalten sein. Ebenso kann jedes <filter>-Element <case>-Elemente oder andere <filter>-Elemente enthalten. Alle Eigenschaftenzuweisungen zum Suchen übereinstimmender <filter>-Elemente werden unabhängig von ihrer Reihenfolge ausgeführt. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
<case> |
|
Hinweise | |
Die Tatsache, dass <filter>-Elemente verschachtelt werden können, macht sie sehr flexibel, was die Suche nach Informationsteilmengen anbelangt. So verwendet zum Beispiel das standardmäßige <browserCaps>-Element in der Datei machine.config verschachtelte <filter>-Elemente, um die Haupt- und Unterversionsnummern aus der Servervariablen HTTP_USER_AGENT abzurufen. Anhand dieser Informationen kann das Element <browserCaps> bestimmte Eigenschaften zuweisen, die bei verschiedenen Unterversionen eines Browsers (d. h. das x in 4.x) unterschiedlich sein können. |
<case> | |
<case match=string> property1=value property2=value propertyN=value </case> | |
Gibt ein <case>-Element aus einer Gruppe von exklusiven Übereinstimmungen an, für die Eigenschaftenzuweisungen ausgeführt werden. Nur das erste übereinstimmende <case>-Element innerhalb eines bestimmten <filter>-Elements wird ausgeführt. Der Rest wird ignoriert. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Hinweise | |
Dieses Element ist nützlich, wenn Sie nur eine einzige Übereinstimmung benötigen. So wird beispielsweise bei der Standardkonfiguration von <browserCaps> in der Datei machine.config das Element <case> verwendet, um die Plattformattribute (win16 und win32) zuzuweisen. |
<clientTarget> | |
<clientTarget> <add alias=aliasName userAgent=userAgentString /> <remove alias=aliasName /> <clear /> </clientTarget> | |
Weist bestimmten User Agent-Strings von Browsern Aliasnamen zu. Diese sollen von ASP.NET-Serversteuerelementen verwendet werden, um festzustellen, welche Art von Inhalt dargestellt werden soll. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
Keine | |
Untergeordnete Elemente
|
|
Beispiel | |
Dieses Beispiel stammt aus dem Standard-<clientTarget>-Element: <clientTarget> <add alias="ie5" userAgent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)" /> <add alias="ie4" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" /> <add alias="uplevel" userAgent="Mozilla/4.0 (compatible; MSIE 4.0; Windows NT 4.0)" /> <add alias="downlevel" userAgent="Unknown" /> </clientTarget> |
|
Hinweise | |
Dieses Element wird im Wesentlichen von den integrierten ASP.NET-Serversteuerelementen verwendet. Daher sollten Sie keine Änderungen an vorhandenen Aliasnamen vornehmen, damit diese Steuerelemente nicht an der Darstellung von Uplevel-Inhalten gehindert werden. |
<compilation> | |
<compilation batch=boolean batchTimeout=numSeconds debug=boolean defaultLanguage=languageAlias explicit=boolean maxBatchSize=maxPages maxBatchGeneratedFileSize=maxSize numRecompilesBeforeAppRestart=numRecompiles strict=boolean tempDirectory=dirName > <compilers> <compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> </compilers> <assemblies> <add assembly=assemblyName /> <remove assembly=assemblyName /> <clear /> </assemblies> </compilation> | |
Stellt Attribute und untergeordnete Elemente zur Konfiguration der Kompilierungsoptionen von ASP.NET-Anwendungen bereit. Alle Attribute sind optional. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
<assemblies>, <compilers> |
|
Beispiel | |
Das Beispiel aktiviert die Compiler-Option Option Strict aus Visual Basic .NET und deaktiviert die Stapelkompilierung: <configuration> <system.web> <compilation batch="false" strict="true"> </compilation> </system.web> </configuration> |
|
Hinweise | |
Sie sollten sich über die Auswirkungen von Änderungen, die Sie an diesem Element vornehmen möchten, in allen Einzelheiten im Klaren sein. Wenn Sie beispielsweise das Attribut debug auf True setzen, hat dies deutlich negative Auswirkungen auf die Leistung. Wenn Sie das Attribut strict auf True setzen, reduziert sich dadurch zwar die Wahrscheinlichkeit von Bugs aufgrund impliziter Konvertierung von Datentypen, gleichzeitig können dadurch aber auch mehr Compiler-Fehler während der Entwicklung des Codes auftreten. |
<assemblies> | |
<assemblies> <add assembly=assemblyInfo /> <remove assembly=assemblyInfo /> <clear /> </assemblies> | |
Zum Hinzufügen oder Entfernen von Assemblies, die während der dynamischen Kompilierung von ASP.NET-Seiten referenziert und verknüpft werden sollen. Standardmäßig wird während der dynamischen Kompilierung auf die Assemblies mscorlib, System, System.Drawing, System.EnterpriseServices, System.Web, System.Data, System.Web.Services und System.Xml verwiesen, ebenso auf alle Assemblies, die sich im Unterverzeichnis bin des Anwendungsverzeichnisses befinden. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
Keine | |
Untergeordnete Elemente
|
|
Beispiel | |
Dieses Beispiel zeigt, wie das Element <add> vom Mobile Internet Toolkit verwendet wird, um der Liste von Assemblies zur dynamischen Kompilierung die Assembly System.Web.Mobile hinzuzufügen. <assemblies> <add assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </assemblies> |
|
Hinweise | |
Mit dem Element <add> wird ein Sternchen (*) als Stellvertreterzeichen verwendet, um anzugeben, dass alle Assemblies im privaten Assembly-Cache der Anwendung (standardmäßig das Unterverzeichnis bin der Anwendung) der Liste der Assemblies hinzugefügt werden sollen, die während der dynamischen Kompilierung verknüpft werden. Dadurch ist sichergestellt, dass alle Mitglieder dieser Assemblies automatisch allen Seiten in der Anwendung zur Verfügung stehen. |
<compilers> | |
<compilers> <compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> </compilers> | |
Enthält mindestens ein <compiler>-Element, das Konfigurationsoptionen für einen bestimmten mit ASP.NET verwendeten Compiler definiert. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
Keine | |
Untergeordnete Elemente | |
<compiler> |
|
Hinweise | |
Dank der Elemente <compilers> und <compiler> braucht zur Unterstützung einer neuen .NET-Sprache in ASP.NET nur ein neues <compiler>-Element hinzugefügt zu werden, das die Sprach-Aliasnamen, die Dateierweiterung für die Klassendateien dieser Sprache sowie Typinformationen für den Sprachcompiler angibt. |
<compiler> | |
<compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> | |
Gibt Konfigurationsoptionen für eine bestimmte Sprache an. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Hinweise | |
Das Element <compilers> in der Datei machine.config ist ein anschauliches Beispiel für die Verwendung dieses Elements. Schauen Sie den Konfigurationsabschnitt an, um festzustellen, wie die Compiler für Visual Basic .NET, C# und JScript .NET konfiguriert werden. |
<customErrors> | |
<customErrors defaultRedirect=Url mode=mode > <error statusCode=httpStatusCode redirect=Url /> </customErrors> | |
Gibt mindestens eine Seite an, zu der Benutzer umgeleitet werden, wenn ein nicht verarbeiteter Ausnahmefehler in einer ASP.NET-Anwendung festgestellt wird. Es können eine Standardfehlerseite sowie eine oder mehrere Fehlerseiten für bestimmte HTTP-Fehlercodes angegeben werden. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
<error> |
|
Beispiel | |
Das Beispiel konfiguriert eine Standardseite, die Remote-Clients angezeigt wird, wenn ein nicht verarbeiteter Ausnahmefehler auftritt: <configuration> <system.web> <customErrors defaultRedirect="Error.aspx" /> </system.web> </configuration> |
|
Hinweise | |
Wenn Sie das Attribut mode auf RemoteOnly setzen, erhalten Sie detaillierte Fehlerinformationen nur von dem lokalen Rechner, auf dem die Seiten ausgeführt werden. Remote-Anforderungen geben die benutzerdefinierte Fehlerseite zurück, die ggf. für den Statuscode des aufgetretenen Fehlers konfiguriert wurde. Wenn Sie die von ASP.NET ausgegebenen Debugging-Informationen sehen möchten, wenn ein Fehler auftritt, muss das Attribut mode auf Off gesetzt sein. |
<error> | |
<error statusCode=httpStatusCode redirect=Url /> | |
Gibt eine benutzerdefinierte Fehlerseite an, auf die Benutzer bei einem bestimmten HTTP-Statuscode umgeleitet werden sollen. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
None |
|
Beispiel | |
Dieses Beispiel konfiguriert eine benutzerdefinierte Fehlerseite für den Fehlercode 404 und verwendet die im vorigen Beispiel konfigurierte Standardfehlerseite. <configuration> <system.web> <customErrors defaultRedirect="Error.aspx"> <error statusCode="404" redirect="My404ErrorPage.aspx"/> </customErrors> </system.web> </configuration> |
|
Hinweise | |
Zwar sind benutzerdefinierte Fehlerseiten eine praktische Möglichkeit, Benutzer vor den sonst üblichen Fehlercodes abzuschirmen und stattdessen aussagekräftigere Meldungen anzuzeigen, sind aber kein Ersatz für eine "richtige" Fehlerbehandlung. Bis der Fehler eine benutzerdefinierte Fehlerseite erreicht, ist es bereits wesentlich schwieriger, den Fehler auf elegante Weise zu beheben, was zu Leistungseinbußen für den Benutzer führen kann. |
<globalization> | |
<globalization requestEncoding=encodingString responseEncoding=encodingString fileEncoding=encodingString culture=cultureString uiCulture=cultureString /> | |
Stellt Attribute zur Konfiguration von Kodierungs- und Kultureinstellungen bereit. Diese Attribute bilden die Grundlage für die erwartete Kodierung von Anforderungen, Antworten und Dateien zur Internationalisierung. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Diese Beispiel zeigt, wie die Standardeinstellungen für <globalization> in web.config konfiguriert sind. <configuration> <system.web> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> </system.web> </configuration> |
|
Hinweise | |
Eine Liste gültiger Kulturstrings finden Sie in der Dokumentation zum .NET-Framework für die Klasse System.Globalization.CultureInfo. |
<httpHandlers> | |
<httpHandlers> <add verb=httpVerbs path=pathInfo type=typeInfo validate=boolean /> <remove verb=httpVerbs path=pathInfo /> <clear /> </httpHandlers> | |
Dient zum Hinzufügen oder Entfernen von HTTP-Handlern (HttpHandlers), die die Verarbeitung von Anforderungen für ein bestimmtes HTTP-Verb und/oder Dateityp oder Pfad übernehmen. ASP.NET selbst ist als HTTP-Handler für .aspx- und .asmx-Dateien eingerichtet. HTTP-Handler sollen verhindern, dass Quellcode für andere ASP.NET-Dateitypen, wie etwa global.asax, heruntergeladen wird. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
Keine | |
Untergeordnete Elemente
|
|
Beispiel | |
Das folgende Beispiel konfiguriert einen benutzerdefinierten HTTP-Handler für die Dateierweiterung .aspnetian: <configuration> <system.web> <httpHandlers> <add verb="*" path="*.aspnetian" type="aspnetian.aspnetianHandler" /> </httpHandlers> </system.web> </configuration> |
|
Hinweise | |
Damit das Beispiel einwandfrei funktioniert, müssen Sie die Dateierweiterung .aspnetian dem ISAPI-Handler von ASP.NET zuweisen. Andernfalls wird diese Anforderung nicht dem benutzerdefinierten HTTP-Handler übergeben. Kapitel 9 enthält eine schrittweise Anleitung zur Zuweisung zusätzlicher Dateitypen zum ISAPI-Handler von ASP.NET. |
<httpModules> | |
<httpModules> <add name=moduleName type=typeInfo /> <remove name=moduleName /> <clear /> </httpModules> | |
Dient zum Hinzufügen oder Entfernen von HTTP-Modulen (HttpModules). HttpModules sind spezielle Klassen, die an der Verarbeitung aller Anwendungsanforderungen beteiligt sind. In ASP.NET sind Caching, der Sitzungsstatus sowie die Authentifizierungs- und Autorisierungsfunktionen als HTTP-Module implementiert. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
Keine | |
Untergeordnete Elemente
|
|
Beispiel | |
In diesem Beispiel wird das HTTP-Modul für den Sitzungsstatus entfernt – ein nützlicher Schritt, wenn Sie dieses Modul nicht verwenden: <configuration> <system.web> <httpModules> <remove name="Session" /> </httpModules> </system.web> </configuration> |
|
Hinweise | |
Wenn Sie ein bestimmtes HTTP-Modul, z. B. das Modul für den Sitzungsstatus oder Authentifizierungsmodule, nicht verwenden, können Sie unnötigen Overhead einsparen, indem Sie diese Module mit dem Element <remove> aus der web.config-Datei der Anwendung entfernen. |
<httpRuntime> | |
<httpRuntime appRequestQueueLimit=numRequests executionTimeout=numSeconds maxRequestLength=numKBytes minFreeLocalRequestFreeThreads=numThreads minFreeThreads=numThreads useFullyQualifiedRedirectUrl=boolean /> | |
Enthält Attribute zur Konfiguration der Einstellungen für die ASP.NET-HTTP-Runtime. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Dieses Beispiel legt fest, dass clientseitige Umleitungs-URLs vollständig und absolut angegeben werden müssen. Dies ist für einige der mobilen Steuerelemente im Microsoft Mobile Internet Toolkit erforderlich: <configuration> <system.web> <httpRuntime useFullyQualifiedRedirectUrl="true" /> </system.web> </configuration> |
|
Hinweise | |
Eines der am häufigsten angepassten Attribute ist maxRequestLength, denn bei Sites, bei denen Dateien hochgeladen werden müssen, ist 4 MB oft nicht ausreichend. Vorsicht bei Erhöhung dieses Werts! Es empfiehlt sich, das Attribut auf die maximal erwartete Dateigröße zu setzen. Wenn Sie diesen Wert zu hoch wählen, kann Ihre Seite für "Denial of Service"-Attacken anfällig werden. |
<identity> | |
<identity impersonate=boolean userName=string password=string /> | |
Gibt an, ob ein Identitätswechsel für Anforderungen möglich ist, sowie welche Identität und welches dazugehörige Kennwort für Anforderungen vom ASP.NET-Worker-Prozess verwendet werden sollen. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Im folgenden Beispiel wird der Identitätswechsel für den angemeldeten und durch IIS authentifizierten Benutzer aktiviert: <configuration> <system.web> <identity impersonate="true" userName="" /> </system.web> </configuration> |
|
Hinweise | |
Da im Attribut password Kennworte in lesbarer Form gespeichert werden, sollten Sie gründlich abwägen, ob der Einsatz dieser Funktionalität sinnvoll ist. Das Speichern vertraulicher Informationen wie Kennwörtern in Form von Textdateien stellt ein mögliches Sicherheitsrisiko dar. |
<machineKey> | |
<machineKey validationKey="autogenerate|value" decryptionKey="autogenerate|value" validation="SHA1|MD5|3DES" /> | |
Gibt die Einstellungen für Kryptographieschlüssel an, die zur Validierung und Entschlüsselung von Cookies zur formularbasierten Authentifizierung verwendet werden. |
|
Einsatzbereich | |
All |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Hinweise | |
Bei Web-Farms müssen Sie darauf achten, dass die Werte für validationKey und decryptionKey für alle Server in der Farm übereinstimmen. Sind die Werte nicht abgestimmt, kann dies zu Fehlern bei der formularbasierten Authentifizierung, zu ViewState-Fehlern oder zu Problemen mit dem Sitzungsstatus führen. |
<pages> | |
<pages buffer=boolean enableSessionState="true|false|ReadOnly" enableViewState=boolean enableViewStateMac=boolean autoEventWireup=boolean smartNavigation=boolean pageBaseType=typeInfo userControlBaseType=typeInfo /> | |
Enthält Attribute zur Konfiguration der Standardeinstellungen von ASP.NET-Seiten und -Benutzersteuerelementen. Diese Einstellungen können durch Attribute der Direktive @ Page oder @ Control außer Kraft gesetzt werden. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Das Beispiel deaktiviert sowohl SessionState als auch ViewState auf Seitenebene: <configuration> <system.web> <pages enableSessionState="false" enableViewState="false" /> </system.web> </configuration> |
|
Hinweise | |
Mit dem Element <pages> können Sie schnell und einfach auf Anwendungs- oder Ordnerebene Standardwerte für die Seiten der Anwendung festlegen. Beispielsweise können Sie damit Seiten, die keinen Zugriff auf den Sitzungsstatus erfordern, in einem separaten Ordner ablegen und über das Element <pages> den Sitzungsstatus für diesen Ordner deaktivieren. In diesem Fall wird für einen Benutzer erst eine Sitzung erstellt, wenn der Benutzer eine Seite in der Anwendung anfordert, für die EnableSessionState auf True gesetzt ist. Die Standardeinstellung von EnableViewStateMac ist True. Dies sollten Sie nicht vergessen, denn bei der MAC-Prüfung werden die Einstellungen im Element <machineKey> verwendet, um eine verschlüsselte Version des verborgenen ViewState-Felds zu erstellen. In einer Web-Farm müssen die <machineKey>-Einstellungen für jeden Server in der Farm übereinstimmen. Andernfalls schlägt die MAC-Prüfung fehl, wenn die ursprüngliche Anforderung eines Benutzers von dem einen Server verarbeitet wird, ein späteres Postback dagegen von einem anderen Server mit abweichenden Einstellungen für <machineKey>. |
<processModel> | |
<processModel enable=boolean timeout="Infinite"|HH:MM:SS idleTimeout="Infinite"|HH:MM:SS shutdownTimeout="Infinite"|HH:MM:SS requestLimit=numRequests requestQueueLimit="Infinite"|numRequests restartQueueLimit="Infinite"|numRequests memoryLimit=percentMemory cpuMask=cpuNumBitMask webGarden=boolean userName=username password=password logLevel="All|None|Errors" clientConnectedCheck=HH:MM:SS comAuthenticationLevel="Default|None|Connect|Call|Pkt| PktIntegrity|PktPrivacy" comImpersonationLevel="Default|Anonymous|Identify|Impersonate| Delegate" responseRestartDeadlockInterval="Infinite"|HH:MM:SS responseDeadlockInterval="Infinite"|HH:MM:SS maxWorkerThreads=numThreads maxIoThreads=numThreads serverErrorMessageFile=fileName /> | |
Enthält Attribute zur Konfiguration des ASP.NET-Worker-Prozesses in IIS 5. |
|
Einsatzbereich | |
Nur Rechner |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Hinweise | |
Im nativen Modus von IIS 6 werden die Einstellungen im <processModel>-Element ignoriert. Da die Einstellungen im <processModel>-Element vom nicht verwalteten aspnet_isapi.dll-Handler, der Anforderungen an den verwalteten aspnet_wp.exe-Worker-Prozess übergibt, gelesen und übernommen werden, werden Änderungen am <processModel>-Element erst angewendet, wenn IIS neu gestartet wird. |
<securityPolicy> | |
<securityPolicy> <trustLevel name=trustLevelName policyFile=fileName /> </securityPolicy> | |
Konfiguriert die Zuweisungen von Trust-Namen (die vom Element <trust> verwendet werden) zu Dateien mit Sicherheitsrichtlinien. Die Sicherheitsrichtliniendateien enthalten Elemente, die die speziell für die betreffende Trust-Ebene Berechtigungen für den Codezugriff konfigurieren. <securityPolicy> kann eines oder mehrere < trustLevel>-Elemente enthalten. |
|
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute | |
Keine | |
Untergeordnete Elemente
|
|
Beispiel | |
Dieses Beispiel stammt aus dem Standard-<securityPolicy>-Element in der Datei machine.config: <securityPolicy> <trustLevel name="Full" policyFile="internal" /> <trustLevel name="High" policyFile="web_hightrust.config" /> <trustLevel name="Low" policyFile="web_lowtrust.config" /> <trustLevel name="None" policyFile="web_notrust.config" /> </securityPolicy> |
|
Hinweise | |
Wenn Sie in einer bestimmten Anwendung die geltenden Berechtigungen für den Codezugriff ändern möchten, können Sie eine neue Richtliniendatei für den Codezugriff (CAS-Datei) anlegen und diese Datei mithilfe des Elements <trustLevel> einer benutzerdefinierten Trust-Ebene zuweisen. Zum Implementieren der neuen Sicherheitsrichtlinie fügen Sie der web.config-Datei der betreffenden Anwendung ein <trust>-Element hinzu und geben Sie in diesem den Namen der zuzuweisenden Richtliniendatei an. |
<sessionState> | |
<sessionState mode="Off|Inproc|StateServer|SQLServer" cookieless=boolean timeout=numMinutes stateNetworkTimeout=numSeconds stateConnectionString="tcpip=server:port" sqlConnectionString=connString /> | |
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute | |
Der Standard ist InProc. |
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Im folgenden Beispiel wird der Sitzungsstatus so konfiguriert, dass der Modus SQLServer ohne Cookies verwendet wird: <configuration> <system.web> <sessionState mode="SQLServer" cookieless="true" sqlConnectionString="data source=myServer;trusted_ connection=true" /> </system.web> </configuration> |
|
Hinweise | |
Wenn der Modus SQLServer mit einer gesicherten Verbindung verwendet wird, muss die Kontoidentität des ASP.NET-Worker-Prozesses bei der SQL Server-Datenbank eine Anmeldung durchführen können und die für den Zugriff auf die ASPState- und TempDB-Datenbanken erforderlichen Berechtigungen besitzen. Wenn keine gesicherte Verbindung genutzt werden kann, sollten Sie ein eigenes Konto speziell zum Zugriff auf die Statusdatenbank erstellen und dieses Konto für das Attribut sqlConnectionString verwenden. Egal welchen der Out-of-Process-Sitzungsstatusmodi Sie verwenden, es empfiehlt sich in jedem Fall, mit dem Attribut EnableSessionState der Direktive @ Page den Sitzungsstatus für die Seiten der Anwendung zu deaktivieren, die ihn nicht verwenden. Andernfalls werden von diesen Seiten unnötige rechnerübergreifende Aufrufe durchgeführt, um nicht verwendete Daten über den Sitzungsstatus abzurufen. Für eine Seite, die Sitzungsdaten zwar ausliest, aber nicht verändert, können Sie auch das Attribut EnableSessionState auf ReadOnly setzen, um rechnerübergreifende Aufrufe zum Speichern aktualisierter Sitzungsdaten zu verhindern. |
<trace> | |
<trace enabled=boolean localOnly=boolean pageOutput=boolean requestLimit=numRequests traceMode="SortByTime|SortByCategory" /> | |
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Dieses Beispiel aktiviert die Ablaufverfolgung auf Anwendungsebene: <configuration> <system.web> <trace enabled="true" /> </system.web> </configuration> |
|
Hinweise | |
Kapitel 10 bietet einen Überblick über den Einsatz der Ablaufverfolgung in ASP.NET. |
<trust> | |
<trust level="Full|High|Low|None" originUrl=URL /> | |
Weist einem Rechner, einer Site oder einer Anwendung eine benannte Trust-Ebene zu, die mit dem untergeordneten Element <trustLevel> des Elements <securityPolicy> erstellt wurde. |
|
Einsatzbereich | |
Rechner, Anwendung |
|
Attribute | |
|
|
Untergeordnete Elemente | |
Keine | |
Beispiel | |
Dieses Beispiel legt die CAS-Berechtigungen der Anwendung entsprechend einer benutzerdefinierten Trust-Ebene fest: <configuration> <system.web> <trust level="myTrustLevel" /> </system.web> </configuration> |
|
Hinweise | |
Vergewissern Sie sich, dass Sie die sicherheitsspezifischen Auswirkungen, die der Einsatz benutzerdefinierter Sicherheitsrichtlinienzuweisungen mit sich bringt, genau kennen, bevor Sie dieses Element verwenden. Falsche Berechtigungen können schwerwiegende Probleme für Ihre Anwendung verursachen. |
<location> | |
<location path=pathToConfigure allowOverride=boolean > <system.web> <! -- Configuration settings -- > </system.web> </location> | |
Mit diesem Element können Sie verhindern, dass Einstellungen in machine.config oder web.config in untergeordneten Konfigurationsdateien außer Kraft gesetzt werden. Sie können damit über eine Konfigurationsdatei in einem übergeordneten Ordner auch Einstellungen für bestimmte Dateien oder Ordner konfigurieren. |
|
Einsatzbereich | |
Beliebig |
|
Attribute | |
|
|
Untergeordnete Elemente | |
<system.web> |
|
Beispiel | |
Würde dieses Beispiel in machine.config verwendet, müssten alle Anwendungen auf dem Rechner die Windows-Authentifizierung verwenden: <configuration> <location allowOverride="false"> <system.web> <authentication mode="Windows"> </system.web> </location> <system.web> <!-- Other configuration settings --> </system.web> </configuration> |
|
Hinweise | |
Dieses Tag bietet weit reichende Steuerungsmöglichkeiten bei der Konfiguration. Sie können nicht nur, wie gezeigt, eine Authentifizierungsmethode für alle Anwendungen vorschreiben, sondern können mit dem Attribut path in der Datei web.config im Stammverzeichnis der Anwendung auch mehrere untergeordnete Ordner oder Datei konfigurieren. Durch eine solche Konfiguration verhindern Sie eine große Zahl untergeordneter web.config-Dateien, die in einer großen Anwendung verwaltet werden müssen. |