<configuration> | |
<configuration> </configuration> | |
L'élément racine de tout fichier de configuration; toujours nécessaire. |
|
Domaine | |
Tous |
|
Attributs | |
Aucun | |
<appSettings> | |
<appSettings> </appSettings> | |
L'élément <appSettings> peut servir à configurer les paramètres d'application personnalisés en tant que paires touche/valeur. Ces paramètres peuvent ensuite être récupérés en cours d'exécution à l'aide de la propriété AppSettings de la classe ConfigurationSettings , comme l'illustre l'exemple. Cette propriété est partagée (de façon statique) et son accès ne requiert pas l'instanciation préalable de la classe ConfigurationSettings . |
|
Domaine | |
N'importe lequel |
|
Attributs | |
Aucun | |
Eléments enfants
|
|
Exemple | |
La section web.config suivante définit une paire touche/valeur au niveau application: <configuration> <appSettings> <add key="applicationConfigKey" value="bar"/> </appSettings> </configuration> La page ASP.NET suivante récupère la valeur définie par le code précédant et récupère également un jeu de valeurs au niveau machine.config : <%@ 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> |
|
Remarques | |
Comme l'indique l'exemple, l'élément <appSettings> peut être utilisé indépendamment de l'élément <system.web> et de ses enfants. Pour des raisons de sécurité, soyez prudent lorsque vous décidez du type de données à enregistrer à l'aide de l'élément <appSettings> . Rappelez-vous que, même si le runtime d'ASP.NET est configuré pour empêcher toute demande ou lecture d'un fichier web.config , ce fichier peut encore être vulnérable en cas de défaillance quelconque de la sécurité du serveur web. Par conséquent, évitez en général d'enregistrer des informations confidentielles telles que des noms d'utilisateur ou des mots de passe, ou bien des liens contenant ce type d'informations, dans le fichier web.config . Il est préférable, bien que toujours un peu risqué, d'enregistrer ces informations au niveau du fichier machine.config , étant donné que ce fichier ne figure pas dans l'espace web de l'application et n'est pas aussi vulnérable aux attaques sur IIS. Cependant, rappelez-vous que toutes les applications sur la machine disposeront de ces informations. |
<system.web> | |
<system.web> </system.web> | |
Elément de conteneur pour l'ensemble des éléments utilisés dans des fichiers web.config . |
|
Domaine | |
Tous |
|
Attributs | |
Aucun | |
Eléments enfants | |
<authentication>, <authorization>, <browserCaps>, <clientTarget>, <compilation>, <customErrors>, <globalization>, <httpHandlers>, <httpModules>, <httpRuntime>, <identity>, <iisFilter>, <machineKey>, <pages>, <processModel>, <securityPolicy>, <sessionState>, <trace>, <trust>, <webServices> |
|
Remarques | |
Cet élément est nécessaire à l'utilisation de l'ensemble des éléments enfants correspondants. |
<authentication> | |
<authentication> </authentication> | |
Fournit des attributs et contient des éléments enfants utilisés pour configurer les options d'authentification dans ASP.NET. |
|
Domaine | |
Machine, Application |
|
Attributs | |
|
|
Eléments enfants | |
<forms>, <passport> |
|
Exemple | |
Cet exemple configure les pages au sein du domaine du fichier de configuration afin d'utiliser l'authentification à base de formulaires ASP.NET: <configuration> <system.web> <authentication mode="Forms"> <forms name="myAuthCookie" loginUrl="login.aspx" protection="All" timeout="30" path="/" /> </authentication> </system.web> </configuration> |
|
Remarques | |
L'élément <location> peut, le cas échéant, servir à configurer l'authentification au niveau machine, et son attribut allowOverride peut servir à empêcher l'écrasement de ces paramètres dans les applications individuelles. L'authentification peut s'avérer un sujet assez délicat. Pour de plus amples informations concernant les diverses méthodes d'authentification ASP.NET et sur leurs relations avec l'authentification IIS, veuillez vous reporter au chapitre 9. |
<forms> | |
<forms loginUrl=String name=String path=String protection="All|None|Encryption|Validation" timeout=Integer> </forms> | |
Fournit des attributs et un élément enfant ( <credentials> ) pour configurer ASP.NET afin qu'il utilise l'authentification à base de formulaires. |
|
Domaine | |
Machine, Application |
|
Attributs | |
|
|
Eléments enfants | |
<credentials> |
|
Exemple | |
Reportez-vous à l'exemple concernant l'élément <authentication> . |
|
Remarques | |
L'authentification à base de formulaires n'est efficace que lorsqu'on l'utilise conjointement à l'élément <authorization> pour refuser l'accès aux pages de l'application à tout utilisateur anonyme. Il est conseillé d'utiliser le cryptage SSL pour la protection des références et du cookie d'authentification de formulaires, afin d'empêcher une éventuelle prise en otage des références. Si vous ne pouvez (ou ne voulez) pas utiliser SSL, essayez au moins de réduire la valeur de timeout par défaut, afin de réduire le risque de voir quelqu'un s'approprier et utiliser le cookie d'authentification. |
<credentials> | |
<credentials passwordFormat="Clear|SHA1|MD5"> </credentials> | |
Vous permet d'enregistrer un ou plusieurs jeux de références dans le fichier de configuration d'application (ou de machine) pour une utilisation ultérieure dans des requêtes d'authentification. L'élément enfant <user> sert à enregistrer les références considérées. |
|
Domaine | |
Machine, Application |
|
Attributs | |
|
|
Eléments enfants | |
<user> |
|
Exemple | |
Cet exemple montre l'élément <credentials> , qui sert à enregistrer deux comptes d'utilisateur à des fins d'authentification: <credentials passwordFormat = "SHA1"> <user name="foo" password="794ED3D18464BAFF93F8DED1CFD00D9A2D9FE316"/> <user name="bar" password="B7CDD2A2B0F05E6948E5CEED22FA9A38EB28DEC8"/> </credentials> |
|
Remarques | |
Une fois que vous avez enregistré les références, vous pouvez vous en servir pour l'authentification à l'aide de la méthode statique (partagée) Authenticate de la classe d'aide FormsAuthentication . Vous pouvez utiliser la méthode statique (partagée) HashPasswordForStoringInConfigFile de FormsAuthentication pour créer une segmentation MD5 ou SHA1 du mot de passe destiné à enregistrer l'élément <user> . En cas d'utilisation de l'élément <credentials> pour enregistrer des références, il est conseillé de toujours segmenter les mots de passe, étant donné que le fait de les enregistrer dans un texte en clair entraîne un risque potentiel en matière de sécurité. Même si, en théorie, personne de devrait pouvoir lire le fichier de configuration, une mauvaise configuration de serveur ou des problèmes de sécurité peuvent éventuellement le rendre vulnérable. |
<user> | |
<user> |
|
Storeconstitue le nom d'utilisateur et le mot de passe de chaque utilisateur défini dans l'élément <credentials> . |
|
Domaine | |
Machine, Application |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Reportez-vous à l'exemple concernant l'élément <credentials> . |
|
Remarques | |
Il est conseillé de toujours utiliser la méthode HashPasswordForStoringInConfigFile pour segmenter les mots de passe enregistrés dans l'attribut de mot de passe. On trouvera une page d'utilitaire qui crée des segments SHA1 ou MD5 à partir des mots de passe en texte clair dans les exemples du chapitre 9. |
<passport> | |
<passport redirectUrl=Url /> | |
Cet élément facultatif configure l'URL interne vers laquelle les requêtes non authentifiées seront redirigées en cas d'utilisation du fournisseur d'authentification Passport de Microsoft. Il est conseillé de n'utiliser cet élément que lorsque l'attribut <mode> de l'élément authentication a pour valeur Passport . |
|
Domaine | |
Machine, Application |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple montre un fichier web.config qui permet de configurer l'authentification Passport d'une application: <configuration> <system.web> <authentication mode="Passport"> <passport redirectUrl="Login.aspx"/> </authentication> </system.web> </configuration> |
|
Remarques | |
Pour de plus amples informations concernant la configuration d'authentification Passport, reportez-vous à la documentation SDK Passport, qui est disponible sur http://www.passport.com. |
<allow> | |
Précise les utilisateurs, les rôles et/ou les verbes HTTP devant être autorisés pour l'application. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Reportez-vous à l'exemple concernant l'élément <authorization> . |
|
Remarques | |
Vous pouvez utiliser deux caractères joker pour indiquer des groupes d'utilisateurs spéciaux:
|
<deny> | |
Précise les utilisateurs, les rôles et/ou les verbes HTTP auxquels l'accès à l'application doit être refusé. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Reportez-vous à l'exemple concernant l'élément <authorization> . |
|
Remarques | |
Les mêmes caractères joker que ceux utilisés par l'élément <allow> s'appliquent également à l'élément deny. Pour refuser l'accès aux utilisateurs anonymes (non authentifiés), donnez à la valeur de l'attribut users de l'élément <deny> la valeur ? . |
<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> | |
Contrôle la configuration du composant de capacités du navigateur renvoyé par la propriété Response.Browser. Les paires propriété/valeur figurant sous l'élément <use> configurent les valeurs par défaut des propriétés de composant de capacités du navigateur; les paires propriété/valeur de l'élément <filter> mettent à jour ces propriétés en fonction d'une correspondance entre la valeur de chaîne indiquée pour l'attribut match de l'élément <case> et la valeur de l'attribut var de l'élément <use> (en général HTTP_USER_AGENT ). |
|
Domaine | |
N'importe lequel |
|
Attributs | |
Aucun | |
Eléments enfants | |
<result>, <use>, <filter> |
|
Exemple | |
Le fichier de configuration machine.config contient les paramètres par défaut de l'élément <browserCaps> . Les paramètres par défaut fournissent le meilleur exemple qui soit en matière de modification ou de mise à jour de cet élément. |
|
Remarques | |
L'objectif principal de cet élément de configuration et de ses enfants consiste à permettre l'addition de nouveaux types de navigateur et la mise à jour de leurs capacités. Ainsi, lorsqu'une page invoque le composant de capacités du navigateur, elle recevra des informations précises concernant les capacités du navigateur utilisé pour la requête considérée. |
<result> | |
<result type=className /> | |
Précise la classe. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Remarques | |
Le type par défaut de System.Web.HttpBrowserCapabilities convient dans la plupart des cas. Si vous souhaitez ajouter des propriétés supplémentaires au-delà de celles définies par la classe HttpBrowserCapabilities , vous pouvez créer votre propre classe (dérivée de HttpCapabilitiesBase ou de HttpBrowserCapabilities ) et utiliser l'élément <result> à sa place. |
<use> | |
<use var=serverVariableName as=aliasName /> | |
Définit le nom de la variable de serveur à utiliser lorsque vous évaluez les capacités du navigateur. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Remarques | |
L'élément <use> est suivi par des paires propriété/valeur qui précisent les propriétés par défaut du composant de capacités du navigateur si aucune correspondance n'est établie avec un attribut <match> de l'élément filter (ou celui de son élément enfant <case>). Cette utilisation fait l'objet d'un exemple dans la section concernant l'élément <browserCaps> . |
<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> | |
Indique un motif d'expression régulière à rechercher dans la variable de serveur figurant dans l'élément <use> (ou, le cas échéant, une autre expression). Plusieurs éléments <filter> peuvent être contenus dans l'élément <BrowserCaps> ; de même, chaque élément <filter> peut contenir des éléments <case> ou d'autres éléments <filter> . Toutes les affectations de propriétés aux éléments <filter> correspondants seront exécutées, quel qu'en soit l'ordre. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
<case> |
|
Remarques | |
Le fait que les éléments <filter> puissent être imbriqués en fait des instruments très flexibles pour la recherche de sous-ensembles d'informations. Par exemple, l'élément par défaut <browserCaps> dans machine.config utilise des éléments <filter> imbriqués pour repérer aussi bien les versions principales que les sous-versions de navigateur contenues dans la variable de serveur HTTP_USER_AGENT , si bien qu'il peut affecter des propriétés spécifiques qui varient en fonction des sous-versions (la sous-version x de la version 4.x, par exemple) d'un navigateur. |
<case> | |
<case match=string> property1=value property2=value propertyN=value </case> | |
Parmi un groupe de cas de correspondance exclusive, en définit un pour lequel les affectations de propriétés seront exécutées. Seul le premier élément <case> correspondant d'un élément <filter> donné sera exécuté. Le reste sera ignoré. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Remarques | |
Cet élément est utile dans les cas où vous ne souhaitez obtenir qu'une seule correspondance. Par exemple, la configuration <browserCaps> par défaut dans machine.config utilise l'élément <case> pour affecter les attributs de plate-forme win16 et win32 . |
<clientTarget> | |
<clientTarget> <add alias=aliasName userAgent=userAgentString /> <remove alias=aliasName /> <clear /> </clientTarget> | |
Affecte des alias aux chaînes d'agent des utilisateurs de navigateur indiquées qui doivent être utilisés par les contrôles de serveur ASP.NET pour décider du type de contenu à afficher. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
Aucun | |
Eléments enfants
|
|
Exemple | |
Cet exemple provient de l'élément <clientTarget> par défaut: <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> |
|
Remarques | |
Cet élément est surtout utilisé par les contrôles de serveur ASP.NET. Par conséquent, abstenez-vous de modifier les alias existants afin d'éviter d'empêcher ces contrôles d'afficher du contenu de haut niveau. |
<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> | |
Fournit des attributs et des éléments enfants pour la configuration des options de compilation des applications ASP.NET. Tous les attributs sont facultatifs. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
<assemblies>, <compilers> |
|
Exemple | |
Cet exemple active l'option de compileur Visual Basic .NET Option Strict et désactive la compilation par lots: <configuration> <system.web> <compilation batch="false" strict="true"> </compilation> </system.web> </configuration> |
|
Remarques | |
Vérifiez que vous comprenez l'impact des modifications apportées à cet élément avant de les effectuer. Par exemple, le fait de donner à l'attribut debug la valeur True aura un impact fortement négatif sur les performances. Le fait de donner à l'attribut strict la valeur True réduit la probabilité de bugs dus à la conversion de types de données implicites. Cependant, cela peut aussi augmenter le nombre d'erreurs de compilation que vous obtenez en développant votre code. |
<assemblies> | |
<assemblies> <add assembly=assemblyInfo /> <remove assembly=assemblyInfo /> <clear /> </assemblies> | |
Ajoute ou supprime des ensembles devant être référencés et associés lors de la compilation dynamique des pages ASP.NET. Par défaut, les ensembles mscorlib, System, System.Drawing, System.EnterpriseServices, System.Web, System.Data, System.Web.Services et System.Xml sont référencés lors de la compilation dynamique, de même que tous les ensembles situés dans le sous-répertoire bin du répertoire d'application. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
Aucun | |
Eléments enfants
|
|
Exemple | |
Cet exemple illustre l'élément <add> utilisé par la boîte à outils Internet mobile pour ajouter l'assembleur System.Web.Mobile à la liste des assembleurs soumis à une compilation dynamique: <assemblies> <add assembly="System.Web.Mobile, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </assemblies> |
|
Remarques | |
Le caractère joker astérisque ( * ) est utilisé avec l'élément <add> pour indiquer que tous les assembleurs figurant dans le cache d'assembleur privé de l'application (par défaut, le sous-répertoire bin de l'application) doivent en principe être ajoutés à la liste des assembleurs liés lors de la compilation dynamique. Cela permet de garantir que tous les membres de ces assembleurs seront automatiquement disponibles pour n'importe quelle page de votre application. |
<compilers> | |
<compilers> <compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> </compilers> | |
Contient un ou plusieurs éléments <compiler> . Chacun de ces éléments définit les options de configuration d'un compilateur particulier devant être utilisé avec ASP.NET. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
Aucun | |
Eléments enfants | |
<compiler> |
|
Remarques | |
Grâce aux éléments <compilers> et <compiler> , l'ajout de prise en charge d'un nouveau langage .NET dans ASP.NET est aussi simple que celui d'un nouvel élément <compiler> précisant les alias de langage, l'extension de fichier des fichiers de classe du langage et les informations de type du compilateur de langage. |
<compiler> | |
<compiler language=languageAlias extension=fileExt type=typeName warningLevel=number compilerOptions=optionString /> | |
Indique les options de configuration d'un langage donné. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Remarques | |
L'élément <compilers> de machine.config constitue un bon exemple d'utilisation d'un tel élément. Reportez-vous à cette section de configuration pour voir la façon dont les compilateurs Visual Basic .NET, C# et JScript .NET sont configurés. |
<customErrors> | |
<customErrors defaultRedirect=Url mode=mode > <error statusCode=httpStatusCode redirect=Url /> </customErrors> | |
Indique une ou plusieurs pages vers lesquelles il faut en principe rediriger les utilisateurs en cas de détection d'une exception non traitée dans une application ASP.NET. Il est possible d'indiquer une page d'erreur par défaut, ainsi qu'une ou plusieurs pages d'erreur pour les codes d'erreurs HTTP spécifiques. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
<error> |
|
Exemple | |
Cet exemple configure l'affichage d'une page par défaut à l'intention des clients distants lorsqu'une exception non traitée est découverte: <configuration> <system.web> <customErrors defaultRedirect="Error.aspx" /> </system.web> </configuration> |
|
Remarques | |
Si vous donnez à l'attribut mode la valeur RemoteOnly , vous ne pourrez voir que les informations d'erreurs détaillées en provenance de la machine locale sur laquelle les pages sont exécutées. Les requêtes distantes renverront la page d'erreur personnalisée (si elle existe) configurée pour le code de statut de l'erreur qui s'est produite. Pour afficher les informations de débogage fournies par ASP.NET lorsqu'une erreur se produit, donnez à l'attribut mode la valeur Off . |
<error> | |
<error statusCode=httpStatusCode redirect=Url /> | |
Indique une page d'erreur personnalisée chargée de traiter les redirections dans le cas d'un code de statut HTTP donné. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun |
|
Exemple | |
Cet exemple configure une page d'erreur personnalisée pour les erreurs 404, et la page d'erreur par défaut configurée dans l'exemple précédent: <configuration> <system.web> <customErrors defaultRedirect="Error.aspx"> <error statusCode="404" redirect="My404ErrorPage.aspx"/> </customErrors> </system.web> </configuration> |
|
Remarques | |
Même si les pages d'erreur personnalisées constituent une façon pratique d'empêcher les utilisateurs de voir des messages d'erreur bruts (et fournissent en principe des messages plus utiles), elles ne remplacent pas un véritable traitement des exceptions. Dès l'instant où une erreur atteint une page d'erreur personnalisée, il devient beaucoup plus difficile de la corriger en douceur, ce qui peut affecter négativement la perception qu'en ont vos utilisateurs. |
<globalization> | |
<globalization requestEncoding=encodingString responseEncoding=encodingString fileEncoding=encodingString culture=cultureString uiCulture=cultureString /> | |
Fournit des attributs de configuration des paramètres de codage et de culture. Ces attributs servent de base au codage attendu des requêtes, des réponses et des fichiers d'internationalisation. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple montre la façon dont les paramètres <globalization> par défaut sont configurés dans web.config : <configuration> <system.web> <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> </system.web> </configuration> |
|
Remarques | |
Une liste de chaînes de culture valables figure dans la documentation .NET Framework de la classe System.Globalization.CultureInfo . |
<httpHandlers> | |
<httpHandlers> <add verb=httpVerbs path=pathInfo type=typeInfo validate=boolean /> <remove verb=httpVerbs path=pathInfo /> <clear /> </httpHandlers> | |
Ajoute ou supprime des HttpHandlers, qui servent au traitement des requêtes d'un verbeHTTP et/ou d'un type ou d'un chemin de fichier donnés. ASP.NET lui-même est configuré en tant que HttpHandler des fichiers .aspx et .asmx , et les HttpHandlers servent à empêcher le téléchargement de code source pour d'autres types de fichiers ASP.NET, tels que global.asax . |
|
Domaine | |
N'importe lequel |
|
Attributs | |
Aucun | |
Eléments enfants
|
|
Exemple | |
Cet exemple configure un HttpHandler personnalisé de l'extension de fichier .aspnetian : <configuration> <system.web> <httpHandlers> <add verb="*" path="*.aspnetian" type="aspnetian.aspnetianHandler" /> </httpHandlers> </system.web> </configuration> |
|
Remarques | |
Pour un fonctionnement correct de l'exemple, il faut associer l'extension de fichier .aspnetian au gestionnaire ASP.NET ISAPI. Sinon, la requête ne sera jamais transmise au HttpHandler personnalisé. Le chapitre 9 comporte une description pas-à -pas du processus d'association de types de fichiers supplémentaires au gestionnaire ASP.NET ISAPI. |
<httpModules> | |
<httpModules> <add name=moduleName type=typeInfo /> <remove name=moduleName /> <clear /> </httpModules> | |
Ajoute ou supprime des HttpModules . HttpModules sont des classes spéciales qui participent au traitement de l'ensemble des requêtes d'application. Dans ASP.NET, tant l'état de mise en cache que celui de session sont installés en tant que HttpModules, au même titre que les fonctions d'authentification et d'autorisation. |
<httpRuntime> | |
<httpRuntime appRequestQueueLimit=numRequests executionTimeout=numSeconds maxRequestLength=numKBytes minFreeLocalRequestFreeThreads=numThreads minFreeThreads=numThreads useFullyQualifiedRedirectUrl=boolean /> | |
Contient des attributs utilisés pour configurer les paramètres du runtime ASP.NET HTTP. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple oblige les URL de redirection côté-client à être dûment qualifiés, ce qui est nécessaire pour certains des contrôles mobiles fournis dans la boîte à outils Internet mobile de Microsoft: <configuration> <system.web> <httpRuntime useFullyQualifiedRedirectUrl="true" /> </system.web> </configuration> |
|
Remarques | |
Un des attributs personnalisés les plus courants correspond à maxRequestLength , étant donné que pour les sites sur lesquels il est nécessaire de charger des fichiers, 4Mo peut s'avérer un peu juste. Soyez néanmoins prudent lorsque vous augmentez cette valeur. Augmentez-la seulement à hauteur de ce dont vous avez besoin pour pouvoir recevoir les plus gros fichiers prévus. Le fait de choisir une valeur trop grande risque de rendre votre site vulnérable aux attaques par saturation. |
<identity> | |
<identity impersonate=boolean userName=string password=string /> | |
Indique si la personnification de requêtes est activée ou pas, ainsi que l'identité à utiliser dans le cas des requêtes effectuées depuis le processus de travailleur ASP.NET et le mot de passe pour cette identité. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple active la personnification de l'utilisateur connecté et authentifié par IIS: <configuration> <system.web> <identity impersonate="true" userName="" /> </system.web> </configuration> |
|
Remarques | |
Etant donné que l'attribut password stocke des mots de passe sous forme de texte en clair, réfléchissez bien si cela en vaut la peine avant d'utiliser cette fonctionnalité. Le fait de stocker des informations confidentielles comme les mots de passe sous forme de texte entraîne un risque potentiel en termes de sécurité. |
<machineKey> | |
<machineKey validationKey="autogenerate|value" decryptionKey="autogenerate|value" validation="SHA1|MD5|3DES" /> | |
Indique les paramètres de clés cryptographiques utilisées pour la validation et le déchiffrage des cookies d'authentification de formulaires |
|
Domaine | |
Tous |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Remarques | |
Pour les fermes Internet, il est important de vérifier que les valeurs validationKey et decryptionKey sont synchronisées sur l'ensemble des serveurs de la ferme. Si ce n'est pas le cas, vous risquez d'obtenir des erreurs d'authentification de formulaires, des erreurs de ViewState ou des problèmes avec Session state. |
<pages> | |
<pages buffer=boolean enableSessionState="true|false|ReadOnly" enableViewState=boolean enableViewStateMac=boolean autoEventWireup=boolean smartNavigation=boolean pageBaseType=typeInfo userControlBaseType=typeInfo /> | |
Contient des attributs utilisés pour configurer les paramètres par défaut des pages et des contrôles d'utilisateurs ASP.NET. Ces paramètres peuvent être écrasés par les attributs de la directive @ Page ou @ Control . |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple désactive à la fois Session state et ViewState au niveau page: <configuration> <system.web> <pages enableSessionState="false" enableViewState="false" /> </system.web> </configuration> |
|
Remarques | |
L'élément <pages> est très utile pour fixer les valeurs par défaut au niveau application (ou au niveau dossier) des pages de votre application. Un des usages possibles consiste à placer les pages qui n'ont pas besoin d'avoir accès à l'état de session dans un dossier séparé et à utiliser l'élément <pages> pour désactiver l'état de session de ce dossier. Dans ce cas, aucune session d'utilisateur ne sera créée jusqu'à ce que l'utilisateur ne sollicite une page de votre application pour laquelle EnableSessionState a la valeur True . La valeur par défaut de EnableViewStateMac est True . Il est important de s'en rappeler car le contrôle MAC utilise les paramètres de l'élément <machineKey> pour créer une version chiffrée du champ masqué ViewState. Dans un scénario de ferme Internet, les paramètres <machineKey> de chaque serveur de la ferme doivent correspondre. Sinon, le contrôle MAC échouera lorsque la demande initiale d'un utilisateur étant traitée par un serveur, une réapplication postérieure est elle traitée par un autre serveur doté de paramètres différents pour <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 /> | |
Contient des attributs utilisés pour configurer le processus de travail ASP.NET dans IIS 5. |
|
Domaine | |
Machine uniquement |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Remarques | |
En mode IIS 6 natif, les paramètres de l'élément <processModel> seront ignorés. Etant donné que les paramètres de l'élément <processModel> sont lus et appliqués au gestionnaire brut aspnet_isapi.dll qui transmet les requêtes au processus de traitement géré aspnet_wp.exe (plutôt que par du code géré), les modifications apportées à l'élément <processModel> ne seront pas appliqués jusqu'à ce que IIS redémarre. |
<securityPolicy> | |
<securityPolicy> <trustLevel name=trustLevelName policyFile=fileName /> </securityPolicy> | |
Configure les associations de noms fiables (utilisés par l'élément <trust> ) aux différents fichiers de politique de sécurité. Les fichiers de politique de sécurité contiennent des éléments qui configurent les autorisations d'accès sécurisé au code qui sont propres à ce niveau de fiabilité. <securityPolicy> et peuvent contenir un ou plusieurs éléments <trustLevel> . |
|
Domaine | |
Machine, Application |
|
Attributs | |
Aucun | |
Eléments enfants
|
|
Exemple | |
Cet exemple provient de l'élément <securityPolicy> par défaut dans 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> |
|
Remarques | |
Pour une application donnée, si vous souhaitez modifier les autorisations d'accès sécurisé au code appliquées, vous pouvez créer un nouveau fichier de politique CAS et associer ce fichier à un niveau de fiabilité personnalisé à l'aide de l'élément <trustLevel> . Pour installer la nouvelle politique de sécurité, il suffit d'ajouter un élément <trust> au fichier web.config de l'application souhaitée et de l'utiliser pour indiquer le fichier de politique associé par nom. |
<sessionState> | |
<sessionState mode="Off|Inproc|StateServer|SQLServer" cookieless=boolean timeout=numMinutes stateNetworkTimeout=numSeconds stateConnectionString="tcpip=server:port" sqlConnectionString=connString /> | |
Domaine | |
Machine, Application |
|
Attributs | |
La valeur par défaut de ce paramètre estInProc |
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple configure l'état de session à exécuter dans le mode SQL Server sans cookies: <configuration> <system.web> <sessionState mode="SQLServer" cookieless="true" sqlConnectionString="data source=myServer;trusted_ connection=true" /> </system.web> </configuration> |
|
Remarques | |
Pour utiliser le mode SQL Server avec une connexion fiabilisée, l'identité de compte du processus de travailleur ASP.NET doit comporter un login vers la base de données SQL Server et jouir d'une autorisation d'accès aux bases de données ASPState et TempDB. Si vous ne disposez pas d'une connexion fiabilisée, il est conseillé de créer un compte spécial pour l'accès à la base de données d'états, et d'utiliser ce compte pour l'attribut sqlConnectionString . Veuillez noter que lorsque vous utilisez l'un ou l'autre des modes d'état de session hors-processus, il est prudent d'utiliser l'attribut EnableSessionState de la directive @ Page pour désactiver l'état de session des pages qui ne s'en servent pas dans votre application. Sinon, ces pages effectueront des appels inutiles entre machines pour récupérer les informations d'état de session non utilisées. Si vous disposez d'une page qui lit les données de session mais ne les modifie pas, vous pouvez aussi donner à l'attribut EnableSessionState la valeur ReadOnly pour éviter que l'appel entre machines ne stocke des données de session mises à jour. |
<trace> | |
<trace enabled=boolean localOnly=boolean pageOutput=boolean requestLimit=numRequests traceMode="SortByTime|SortByCategory" /> | |
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple active le tracing au niveau application: <configuration> <system.web> <trace enabled="true" /> </system.web> </configuration> |
|
Remarques | |
Le chapitre 10 décrit comment utiliser la fonctionnalité de trace d'ASP.NET. |
<trust> | |
<trust level="Full|High|Low|None" originUrl=URL /> | |
Attribue un niveau de fiabilité donné créé à l'aide de l'élément enfant <trustLevel> de l'élément <securityPolicy> à une machine, un site ou une application. |
|
Domaine | |
Machine, Application |
|
Attributs | |
|
|
Eléments enfants | |
Aucun | |
Exemple | |
Cet exemple définit les autorisations CAS d'application, en fonction d'un niveau de fiabilité personnalisé: <configuration> <system.web> <trust level="myTrustLevel" /> </system.web> </configuration> |
|
Remarques | |
Vérifiez que vous comprenez les conséquences en matière de sécurité liées à l'utilisation d'associations de politiques de sécurité avant d'utiliser cet élément. Toute autorisation incorrecte peut être une source de problèmes pour votre application. |
<location> | |
<location path=pathToConfigure allowOverride=boolean > <system.web> <! -- Paramètres de configuration -- > </system.web> </location> | |
Vous permet d'empêcher l'écrasement des paramètres de machine.config ou de web.config dans les fichiers de configuration enfants. Vous pouvez également l'utiliser pour configurer les paramètres de certains fichiers ou dossiers particuliers à partir d'un fichier de configuration dans un dossier parent. |
|
Domaine | |
N'importe lequel |
|
Attributs | |
|
|
Eléments enfants | |
<system.web> |
|
Exemple | |
Cet exemple, en cas d'utilisation dans machine.config , oblige toutes les applications de la machine à utiliser l'authentification Windows: <configuration> <location allowOverride="false"> <system.web> <authentication mode="Windows"> </system.web> </location> <system.web> <!-- Other configuration settings --> </system.web> </configuration> |
|
Remarques | |
Cette balise fournit un puissant moyen de contrôle de la configuration. Outre le fait d'instaurer une méthode d'authentification pour l'ensemble des applications, vous pouvez aussi utiliser l'attribut path pour configurer des dossiers ou des fichiers enfants multiples à partir du fichier web.config figurant dans la racine de l'application. Le fait d'utiliser cette configuration permet d'éviter d'avoir à gérer un grand nombre de fichiers web.config enfants dans le cas d'une application volumineuse. |