<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
  • <add>
      Le modèle à respecter.
  • <remove>
      Le modèle à respecter.
  • <clear>
      Le modèle à respecter.
 
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
 
  • Mode
      Détermine le type d'authentification qui sera utilisé par ASP.NET. Les valeurs acceptables sont:

    • Windows(par défaut)
        Utilise les références fournies par les méthodes d'authentification IIS (Basic, Digest, Integrated Windows Authentication, ou Certificates) pour authentifier les requêtes d'utilisateur. Les requêtes peuvent être autorisées ou refusées en fonction des paramètres contenus dans l'élément <authorization>, et ce à l'aide du nom d'utilisateur authentifié (ou d'un nom de groupe ou de rôle associé). Il s'agit du mode d'authentification par défaut défini dans machine.config.
    • Forms
       Fournit une infrastructure à l'exécution d'une procédure d'authentification personnalisée lorsque l'authentification Windows n'est pas possible. Lorsque l'authentification Forms est activée, les utilisateurs qui ne se sont pas identifiés sont automatiquement redirigés sur une URL de login fournie en tant qu'attribut de l'élément <forms>. Une fois le login effectué, un cookie est envoyé sous forme de jeton d'authentification. Il est possible d'authentifier les utilisateurs à l'aide de n'importe quelle base de données de références, au choix du développeur. Cela peut aller du répertoire actif à une base de données de références personnalisée. Ce mode doit comporter l'élément enfant <forms>
    • Passport
      Utilise le service d'authentification Passport de Microsoft. Ce mode doit comporter l'élément enfant <passport>
    • None
      Indique qu'aucune authentification n'a lieu au niveau ASP.NET. Les requêtes peuvent toujours être authentifiées au niveau IIS à l'aide de l'un des modes d'authentification IIS, conjointement aux listes de contrôle d'accès NTFS (ACL).
 
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
 
  • name
      Indique le nom du cookie d'authentification. Si on omet cet attribut, il adopte la valeur par défaut .ASPXAUTH . Lors de l'exécution d'applications multiples utilisant une authentification à base de formulaires sur le même serveur, il est généralement conseillé de donner à chaque application son propre nom de cookie d'authentification. Et ce pour minimiser le risque de voir les utilisateurs authentifiés dans le cadre d'une application donnée traités comme s'ils l'étaient pour d'autres.
  • loginUrl
      Indique l'URL de redirection des utilisateurs non munis d'un cookie d'authentification valable. Si un utilisateur sans cookie d'authentification sollicite une page dans l'application, il faudra le rediriger vers cette URL pour le log in. La page de login peut ensuite rediriger l'utilisateur vers la page initialement sollicitée. Si l'on omet cet attribut, il adopte la valeur par défaut login.aspx .
  • protection
      Indique le type de protection utilisé pour empêcher la modification du cookie d'authentification lors du transfert. Les valeurs acceptables sont:
    • All
        Les cookies sont à la fois chiffrés (par cryptage DES triple, s'il est disponible) et soumis à un processus de validation des données. La validation des données s'effectue en fonction des paramètres de l'élément <machineKey>. All constitue la valeur par défaut et correspond au paramétrage recommandé pour garantir le cookie d'authentification.
    • Cryptage
        Les cookies sont simplement chiffrés. Cela réduit les frais associés à la protection des cookies, mais risque de rendre ceux-ci plus vulnérables aux attaques en mode texte.
    • None
        Ni le cryptage, ni la validation ne sont activés pour la protection des cookies. Cela réduit les frais en cas d'utilisation d'une méthode d'authentification à base de formulaires, mais n'assure aucune protection du cooke d'authentification. Cet attribut n'est pas recommendé.
    • Validation
        Une clé de validation est associée aux données de cookie. Cette clé est vérifiée pour s'assurer que les données de cookie n'ont pas été modifiées lors du transfert.
  • timeout
      Indique le laps de temps restant, en minutes, avant l'expiration du cookie d'authentification. Il s'agit d'une valeur glissante, qui est redéfinie lorsqu'une requête est reçue après écoulement de plus de la moitié de la période de timeout. On observera que cet attribut ne s'applique pas au cookies persistants. Sa valeur par défaut est 30 .
  • path
      Indique le chemin du cookie d'authentification. Etant donné que de nombreux navigateurs sont sensibles au type de lettre pour ce qui est du traitement du chemin, la valeur par défaut correspond au caractère antislash ( \ ).
 
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
 
  • passwordFormat
      Indique le format dans lequel les mots de passe seront enregistrés (et comparés). Les options acceptables sont Clear , SHA1 et MD5 .
 
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
 
  • name
      Le nom d'utilisateur servant à l'authentification.
  • password
      Le mot de passe servant à l'authentification.
 
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
 
  • redirectUrl
      Une URL de l'application vers laquelle les requêtes sans jeton d'authentification Passport sont redirigées.
 
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.

<authorization>

Fournit deux éléments enfants, <allow> et <deny> , qui vous permettent de configurer les utilisateurs, les rôles, ou les verbes HTTP permettant d'accéder aux ressources d'application.

 
Domaine

Tous

 
Attributs
Aucun
 
 
Eléments enfants

<allow>, <deny>

 
Exemple

Cet exemple permet aux utilisateurs Marie et Jean d'accéder aux ressources de l'application à l'aide de n'importe quel verbe HTTP, tout en refusant l'accès POST aux utilisateurs non authentifiés:

<configuration>
   <system.web>
      <authorization>
         <allow users="Mary, John" />
         <deny users="?" verbs="POST" />
      </authorization>
   </system.web>
</configuration>
 
Remarques

Le type d'autorisation installé par l'élément <authorization> s'appelle une URL authorization. Pour en savoir plus sur l'autorisation URL, reportez-vous au chapitre 9.

Vous pouvez préciser les paramètres d'autorisation d'un fichier donné ou d'un répertoire de votre application qui diffère de ceux configurés par défaut dans le fichier racine web.config de l'application de l'une des deux manières suivantes:

  • En ajoutant un élément <authorization> au fichier web.config du répertoire enfant souhaité, comme l'illustre l'exemple.
  • En utilisant une balise <location> dans le fichier racine web.config et en donnant à son attribut path la valeur du chemin souhaité, comme indiqué ci-après:
<configuration>
	<location path="files">
		<system.web>
			<authorization>
				<deny users="?" />
			</authorization>
		</system.web>
	</location>
	<system.web>
		<!--other configuration settings -->
	</system.web>
</configuration>
<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
 
  • users
      Une liste de noms d'utilisateurs autorisés, séparés par des virgules.
  • roles
      Une liste de rôles autorisés(groupes NT), séparés par des virgules.
  • verbs
      Une liste de verbes HTTP autorisés (GET, HEAD, POST ou DEBUG), séparés par des virgules.
 
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:

  • *
      Lorsqu'il désigne la valeur de l'attribut user , permet l'accès à tous les utilisateurs. Il s'agit de la configuration par défaut, telle qu'elle est définie dans machine.config .
  • ?
      Lorsqu'il désigne la valeur de l'attribut user , permet l'accès aux utilisateurs anonymes. Ce caractère joker est en général utilisé avec l'élément <deny> .
<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
 
  • users
      Une liste de noms d'utilisateurs autorisés, séparés par des virgules.
  • roles
      une liste de rôles autorisés (groupes NT), séparés par des virgules.
  • verbs
      Une liste de verbes HTTP autorisés (GET, HEAD, POST ou DEBUG), séparés par des virgules.
 
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
 
  • type
      Le nom de classe et, le cas échéant, la version, la culture et les informations clé qui caractérisent la classe destinée à contenir les résultats de l'analyse des capacités du navigateur. Cette classe doit dériver de HttpCapabilitiesBase. Par défaut (défini dans machine.config ), il s'agit de System.Web.HttpBrowserCapabilities.
 
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
 
  • var
      Le nom de la variable de serveur à utiliser. Par défaut, il s'agit de HTTP_USER_AGENT .
  • as
      La chaîne contenant un nom pouvant servir à référencer la variable de serveur dans les éléments et les expressions régulières <case> .
 
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
 
  • match
      Le modèle à respecter. Utilise la syntaxe d'expressions régulière .NET Framework. Cet attribut est facultatif. En cas d'omission, toutes les requêtes seront censées correspondre et toutes les affectations de propriété/valeur contenues au sein de l'élément <filter> seront exécutées.
  • with
      L'expression régulière ou la chaîne à rechercher. Cet attribut est facultatif. En cas d'omission, le système cherchera la variable de serveur indiquée dans l'élément <use> .
 
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
 
  • correspondants
      Le modèle à remplir. Utilise la syntaxe d'expressions régulière de structure .NET Framework. Cet attribut est facultatif. En cas d'omission, toutes les requêtes seront censées correspondre et toutes les affectations de propriété/valeur contenues au sein de l'élément <filter> seront exécutées.
  • with
      L'expression régulière ou la chaîne à rechercher. Cet attribut est facultatif. En cas d'omission, le système cherchera la variable de serveur indiquée dans l'élément <use> .
 
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
  • <add>
      Ajoute un alias dont le nom correspond à l'attribut alias à la chaîne User Agent indiquée par l'attribut userAgent .
  • <remove>
      Supprime un alias configuré précédemment et dont le nom correspond à l'attribut alias .
  • <clear>
      Supprime l'ensemble des alias configurés précédemment.
 
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
 
  • batch
      Indique si ASP.NET doit essayer de compiler par lot ou pas toutes les pages de l'application après la première requête de page. Par défaut, cet attribut a la valeur True .
  • batchTimeout
      Indique le laps de temps, exprimé en secondes, pendant lequel le compileur essaiera de compiler par lot les pages de l'application. Une fois le timeout dépassé, les pages seront compilées selon le premier mode sollicité. Par défaut, cet attribut a la valeur 15 .
  • debug
      Indique si les pages seront compilées avec des symboles de débogage ou pas. Par défaut, la valeur de cet attribut est False .
  • defaultLanguage
      Indique le compileur de langage qui sera utilisé pour compiler le code inline dans les pages ASP.NET pour lesquelles aucun langage n'est précisé. Par défaut, il s'agit de VB (Visual Basic .NET).
  • explicit
      Indique si l'option de compilateur Visual Basic .NET Option Explicit est activée ou pas. Par défaut, cet attribut a la valeur True .
  • maxBatchSize
      Indique le nombre maximum de classes générées lors d'une compilation par lots. Par défaut, cette attribut a la valeur 1000 .
  • maxBatchGeneratedFileSize
      Indique la taille combinée maximum en Ko des fichiers source générés créés pendant la compilation par lots. Par défaut, cet attribut a la valeur 3000 .
  • numRecompilesBeforeAppRestart
      Indique le nombre de recompilations avant la fin de cycle du appDomain contenant l'application (un nouveau appDomain est créé et l'ancien est détruit). Par défaut, cet attribut a la valeur 15 .
  • strict
      Indique si l'option de compilateur Visual Basic .NET Option Strict (qui interdit les conversions de rapprochement implicites) est activée ou pas. Par défaut, la valeur de cet attribut est False .
  • tempDirectory
      Indique le répertoire dans lequel les fichiers temporaires de code à compilage dynamique de l'application seront stockés. Par défaut, il s'agit de %windir%\Microsoft.NET\Framework\%version%\Temporary ASP.NET Files .
 
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
  • <add>
      Adds an assembly specified by the assembly attribute to the list of assemblies to be linked during dynamic resource compilation.
  • <remove>
      Removes a previously configured assembly specified by the assembly attribute from the list of assemblies to be linked during dynamic resource compilation.
  • <clear>
      Clears all previously configured assemblies.
 
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
 
  • langage
      Indique le ou les noms servant à désigner le langage dans l'attribut language de la directive @ Page . Les noms multiples seront en principe séparés par des point-virgules. Cet attribut est obligatoire.
  • extension
      Indique la ou les extension(s) utilisée(s) par les fichiers code-behind pour le langage considéré. Les noms multiples seront en principe séparés par des point-virgules. Cet attribut est obligatoire.
  • type
      Indique les informations de type .NET pour la classe devant être utilisée pour compiler les ressources du langage considéré. Cet attribut est obligatoire.
  • warningLevel
      Indique le niveau d'avertissement du compilateur du langage. Cet attribut est facultatif et risque de ne pas être pris en charge par tous les compilateurs.
  • compilerOptions
      Indique une chaîne contenant les options de compilateur susceptibles d'être transférées au compilateur.
 
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
 
  • defaultRedirect
      Indique l'URL de la page vers laquelles il faut en principe rediriger toutes les erreurs lorsqu'aucune page d'erreur spécifique n'est configurée pour le code de statut HTTP de l'erreur. Cet attribut est facultatif.
  • mode
      Indique le mode d'erreur personnalisé. Les valeurs acceptables sont Off , On et RemoteOnly . Off désactive le traitement d'erreurs personnalisé, On active les pages d'erreur personnalisées des requêtes tant locales que distantes. RemoteOnly active les pages d'erreurs personnalisées des requêtes distantes, tout en envoyant des messages d'erreur détaillés dans le cas des requêtes locales. Cet attribut est obligatoire.
 
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
 
  • statusCode
      Indique le code de statut HTTP (tel que 404 pour une erreur "Introuvable") de la page d'erreur personnalisée considérée. Cet attribut est facultatif.
  • redirect
      Indique l'URL de la page vers laquelle les requêtes dotées d'un code de statut HTTP doivent être redirigées. Cet attribut est facultatif.
 
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
 
  • requestEncoding
      Indique le codage prévu des requêtes entrantes. Il peut s'agir de n'importe quelle chaîne de codage valable et doit en principe correspondre à l'attribut responseEncoding . Par défaut, il s'agit de UTF-8 . Cet attribut est facultatif.
  • responseEncoding
      Indique le codage de contenu des réponses. Il peut s'agir de n'importe quelle chaîne de codage valable, pourvu qu'elle corresponde à l'attribut requestEncoding . Par défaut, il s'agit de UTF-8 . Cet attribut est facultatif.
  • fileEncoding
      Indique le codage utilisé pour segmenter les fichiers .aspx , .asmx et .asax . Cet attribut est facultatif.
  • culture
      Indique la culture prévue des requêtes entrantes. Il peut s'agir de n'importe quelle chaîne de culture valable. Cet attribut est facultatif.
  • uiCulture
      Indique la culture des recherches de ressources en langue locale. Il peut s'agir de n'importe quelle chaîne de culture valable. Cet attribut est facultatif.
 
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
  • <add>
      Ajoute un HttpHandler. Les verbes HTTP (GET, POST, etc.) traités par le HttpHandler sont indiqués par l'attribut verb ; le caractère joker astérisque ( * ) sert à spécifier l'ensemble des verbes. L'extension de chemin ou de fichier que le HttpHandler doit traiter est indiquée par l'attribut path . La classe utilisée pour traiter la requête est indiquée par l'attribut type . Cette classe doit installer l'interface IHttpHandler. Enfin, l'attribut validate indique à ASP.NET s'il doit, ou non, essayer de charger la classe indiquée par l'attribut type avant de recevoir une requête correspondante.
  • <remove>
      Supprime un HttpHandler configuré précédemment, en fonction des attributs verb et path considérés. Les attributs doivent correspondre à un élément <add> configuré précédemment.
  • <clear>
      Supprime tous les HttpHandlers configurés précédemment.
 
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
 
  • appRequestQueueLimit
      Indique la limite supérieure de mise en file d'attente des requêtes. Une fois cette limite atteinte, les requêtes supplémentaires recevront la réponse "503 - Serveur trop occupé". Par défaut, cette limite est fixée à 100.
  • executionTimeout
      Indique la durée, exprimée en secondes, pendant laquelle une requête peut être exécutée avant que le runtime ne l'interrompe. Par défaut, cette durée est fixée à 90.
  • maxRequestLength
      Indique la taille maximum des fichiers, en Ko, susceptibles d'être téléchargés par un client sur une application ASP.NET. Cet attribut sert surtout à empêcher les attaques par saturation qui consistent à essayer de télécharger de très gros fichiers sur le serveur. Par défaut, cette taille est fixée à 4096.
  • minFreeLocalRequestFreeThreads
      Indique le nombre minimum de threads réservés aux requêtes de l'hôte local qui nécessitent des threads supplémentaires. Par défaut, ce nombre est fixé à 4.
  • minFreeThreads
      Indique le nombre minimum de threads réservés aux requêtes de l'hôte local qui nécessitent des threads supplémentaires. Par défaut, ce nombre est fixé à 8.
  • useFullyQualifiedRedirectUrl
      Indique si les URL envoyées au client pour des redirections sont dûment qualifiés ou bien relatifs. Par défaut, la valeur de cet attribut est False , ce qui signifie que l'URL est relatif.
 
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
 
  • impersonate
      Indique si la personnification est activée ou pas pour cette application. Si c'est le cas (valeur True ), les requêtes effectuées par le processus de travail ASP.NET le seront avec le contexte de sécurité du compte indiqué par l'attribut userName ; si cet attribut est vierge, le contexte est celui du compte de l'utilisateur connecté. Par défaut, la valeur de cet attribut est False .
  • userName
      Indique le nom d'utilisateur du compte Windows à utiliser pour la personnification. Si la valeur est laissée en blanc ou omise, les requêtes seront effectuées dans le contexte de l'utilisateur connecté.
  • password
      Indique le mot de passe du compte figurant dans l'attribut userName . Ce mot de passe est stocké sous forme de texte en clair.
 
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
 
  • validationKey
      La clé utilisée pour la validation des données de cookies d'authentification de formulaires, la vérification MAC de ViewState et les cookies d'état de session. Par défaut, la valeur de cette clé est autogenerate , qui génère et stocke une clé aléatoire. Pour les installations de fermes Internet, vous pouvez donner à cette valeur la même valeur de clé de 40 à 128 caractères sur chaque serveur afin de garantir que tous les serveurs puissent valider correctement.
  • decryptionKey
      La clé utilisée pour le déchiffrage des données de cookies d'authentification de formulaires. Par défaut, la valeur de cette clé est autogenerate , qui génère et stocke une clé aléatoire. Pour les installations de fermes Internet, vous pouvez donner à cette valeur la même valeur de clé de 40 à 128 caractères sur chaque serveur afin de garantir que tous les serveurs puissentvalider correctement.
  • validation
      Indique le type de chiffrage utilisé pour la validation des données.
 
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
 
  • buffer
      Indique si la mise en mémoire tampon du résultat de la page est activée ou pas. Par défaut, cet attribut a la valeur True .
  • enableSessionState
      Indique si une page a accès au module Session state ou pas. Parmi les valeurs acceptables, figurent True , False et ReadOnly . Par défaut, cet attribut a la valeur True .
  • enableViewState
      Indique si ViewState est activé au niveau page ou pas. Par défaut, cet attribut a la valeur True .
  • enableViewStateMac
      Indique au niveau page si une vérification d'authentification de machine (MAC) a lieu sur le champ masqué ViewState. Cette spécification peut aider à identifier le piratage côté-client à l'aide du ViewState. Par défaut, cet attribut a la valeur True .
  • autoEventWireup
      Indique si ASP.NET prendra en charge ou pas de façon automatique les événements de page spécifiques, tels que Page_Load,. Par défaut, cet attribut a la valeur True .
  • smartNavigation
      Indique si la fonction Smart Navigation, pour laquelle les versions IE 5 ou suivantes fournissent une prise en charge des procédures de réapplication ou de rafraîchissement partiel de page, est activée au niveau page ou pas. Par défaut, la valeur de cet attribut est False .
  • pageBaseType
      Indique la classe de base dont proviennent toutes les pages. Par défaut, il s'agit de System.Web.UI.Page .
  • userControlBaseType
      Indique la classe de base dont proviennent tous les contrôles d'utilisateurs. Par défaut, il s'agit de System.Web.UI.UserControl .
 
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
 
  • enable
      Indique si les paramètres <processModel> sont activés ou pas. Par défaut, cet attribut a la valeur True .
  • timeout
      Indique la durée de vie du processus, au format hh:mm:ss . Lorsque cette valeur expire, un nouveau processus commence et le processus considéré se referme. Pour désactiver la temporisation (timeout), utilisez la valeur Infinite . Par défaut, la valeur de cet attribut est Infinite .
  • idleTimeout
      Indique la durée de vie du processus, au repos, au format hh:mm:ss . Lorsque cette valeur expire, le processus considéré s'interrompt. Pour désactiver la temporisation (timeout), utilisez la valeur Infinite . Par défaut, la valeur de cet attribut est Infinite .
  • shutdownTimeout
      Indique le laps de temps, au format hh:mm:ss , accordé au processus pour s'interrompre en douceur. Lorsque cette valeur expire, le processus est définitivement interrompu. Pour désactiver la temporisation (timeout), utilisez la valeur Infinite . Par défaut, cet attribut a la valeur 0:00:05 .
  • requestLimit
      Indique le nombre de requêtes susceptibles d'être servies par le processus ASP.NET avant qu'il ne s'interrompe et ne redémarre. Cet attribut peut servir à redémarrer de façon proactive le processus ASP.NET afin de compenser les fuites de mémoire ou les autres problèmes éventuellement liés aux ressources héritées (comme les composants COM) que vous devez utiliser dans vos applications. La valeur par défaut de cet attribut est Infinite , ce qui désactive la fonction en question.
  • requestQueueLimit
      Indique le nombre de requêtes susceptibles d'être mises en file d'attente par le processus ASP.NET avant qu'il ne s'interrompe et ne redémarre. Cet attribut peut servir à remédier de façon proactive aux situations dans lesquelles le manque de ressources entraîne la mise en file d'attente des requêtes. La valeur par défaut de cet attribut est 5000 .
  • restartQueueLimit
      Indique le nombre de requêtes qui demeureront dans la file d'attente des requêtes jusqu'à ce qu'un redémarrage de processus conforme à la configuration requestQueueLimit n'ait lieu. La valeur par défaut de ce paramètre est 10 .
  • memoryLimit
      Indique la limite supérieure, sous forme de pourcentage, de la mémoire physique que le processus ASP.NET pourra utiliser. En cas de dépassement de cette valeur, un nouveau processus sera lancé et le processus considéré sera interrompu. La valeur par défaut de ce paramètre est 60 .
  • cpuMask
      Utilisé dans les scénarios de jardin Internet pour indiquer la ou les CPU d'un serveur multiprocesseur chargée(s) d'exécuter le processus ASP.NET considéré. Cette valeur est un bitmask. La valeur par défaut de cet attribut est 0xffffffff , ce qui signifie qu'un processus de travailleur doit en principe être créé pour chaque CPU.
  • webGarden
      Indique si le jardinage Internet, dans lequel les processus de travailleur sont liés à des processeurs particuliers au sein d'un serveur multiprocesseur, est activé ou pas. Par défaut, la valeur de cet attribut est False .
  • userName
      Indique l'identité sous laquelle le processus de travail ASP.NET sera exécuté. Il peut s'agir d'un compte NT valable ou de l'une des deux valeurs spéciales suivantes:
    • SYSTEM
       Exécute le processus ASP.NET en tant que compte SYSTEM, qui est un compte d'administration comportant d'importants privilèges.
    • machine
       Exécute le processus ASP.NET en tant que compte ASPNET (installé avec la structure .NET), qui est un compte spécial avec peu de privilèges. Il s'agit du processus par défaut et il fournit une plus grande sécurité initiale aux applications web écrites à l'aide de ASP.NET. Veuillez noter que la documentation de l'élément <processModel>indique de façon incorrecte que le processus par défaut est SYSTEM.
  • password
      Indique le mot de passe du compte correspondant à l'attribut userName . Utilisez la valeur AutoGenerate (par défaut) lorsque vous utilisez les comptes SYSTEM ou machine .
  • logLevel
      Indique le type de traitements répertoriés dans le journal d'événements NT. Les valeurs acceptables sont:
    • All
       Tous les traitements seront répertoriés.
    • Errors
       Seules les erreurs seront répertoriées. Il s'agit de la valeur par défaut.
    • None
       Aucun traitement ne sera répertorié.
  • clientConnectedCheck
      Indique le laps de temps, au format hh:mm:ss , pendant lequel une requête demeure dans la file d'attente avant que le processus ASP.NET ne vérifie si le client est toujours connecté. Par défaut, cet attribut a la valeur 0:00:05 .
  • comAuthenticationLevel
      Indique le niveau d'authentification utilisé en matière de sécurité DCOM. La valeur par défaut de cet attribut est Connect .
  • comImpersonationLevel
      Indique le niveau d'authentification utilisé en matière de sécurité COM. La valeur par défaut de cet attribut est Impersonate .
  • responseRestartDeadlockInterval
      Indique le laps de temps, au format hh:mm:ss , permis entre les redémarrages de processus en fonction de la valeur de l'attribut responseDeadlockInterval . Cette spécification ne permet pas un cycle de traitement uniforme à cause des temps morts qu'elle introduit. Pour désactiver cette fonction, utiliser la valeur Infinite . Par défaut, cet attribut a la valeur 0:09:00 .
  • responseDeadlockInterval
      Indique le laps de temps, au format hh:mm:ss , qui peut s'écouler entre deux réponses lorsque les requêtes sont mises en file d'attente. Lorsque cette valeur expire, le processus est interrompu et relancé. Pour désactiver cette fonction, utilisez la valeur Infinite . Par défaut, cet attribut a la valeur 0:03:00 .
  • maxWorkerThreads
      Indique la limite supérieure des threads de travail par CPU dans le groupe de threads. La valeur par défaut de cet attribut est 25 .
  • maxIoThreads
      Indique la limite supérieure des threads IO par CPU dans le groupe de threads. La valeur par défaut de cet attribut est 25 .
  • serverErrorMessageFile
      Indique le filename d'un fichier affiché lorsqu'une erreur "Serveur non disponible" se produit.
 
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
  • <trustLevel>
      Chaque élément <trustLevel> associe un nom de niveau fiable à un fichier de politique donné chargé d'installer les autorisations d'accès sécurisé au code pour le niveau de fiabilité en question. L'attribut name indique le nom servant à désigner le niveau de fiabilité dans l'élément <trust> , alors que l'attribut policyFile indique le nom du fichier de politique à associer au nom considéré.
 
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
 
  • mode
      Indique si l'état de session est activé ou pas et, si c'est le cas, la façon dont les données d'état seront stockées. Les valeurs acceptables sont:

    • Off
       L'attribut Session state est désactivé.
    • InProc
       Les données d'état de session seront stockées en mémoire sur le serveur local. Il s'agit du même modèle que Session state en ASP classique. Ce mode Session state ne permet pas de partager l'état de session entre les serveurs d'une ferme Internet.
    • StateServer
       Les données d'état de session seront stockées en mémoire dans un service d'état NT spécial sur un serveur d'état désigné. Ce mode d'état de session permet de partager l'état de session entre les serveurs d'une ferme Internet.
    • SQLServer
       Les données d'état de session seront stockées dans une base de données de serveur SQL sur un serveur SQL désigné. Ce mode Session state permet de partager l'état de session entre les serveurs d'une ferme Internet. Dans ce mode, il faut également exécuter une interrogation SQL (qui figure dans la structure SDK de .NET) pour configurer la base de données de serveur SQL.

    La valeur par défaut de ce paramètre estInProc
  • cookieless
      Indique si les cookies serviront à associer des utilisateurs à des sessions particulières ou pas. Si cet attribut a la valeur True , l'identifiant de session sera automatiquement ajouté à l'URL lors de chaque requête. Pour que cela fonctionne correctement, votre application doit utiliser des URL relatifs. Par défaut, la valeur de cet attribut est False .
  • timeout
      Indique le laps de temps, exprimé en minutes, qui s'écoule avant que la session ne s'interrompe en l'absence d'activité (lorsqu'aucune requête n'est reçue avec ce SessionID). La valeur de cet attribut est 20 .
  • stateNetworkTimeout
      Indique le laps de temps, exprimé en secondes, au bout duquel les activités réseau s'interrompront lors d'une utilisation en mode d'état de session StateServer . La valeur par défaut de ce paramètre est 10 .
  • stateConnectionString
      Indique le nom de serveur ou l'adresse IP et le numéro de port TCP du serveur d'état de session en mode StateServer . Cet attribut est nécessaire lorsque l'attribut mode est StateServer . La valeur par défaut de cet attribut est tcpip=127.0.0.1:42424 .
  • sqlConnectionString
      Indique le nom et les références d'authentification de serveur SQL en mode de session SQLServer . Cet attribut est nécessaire lorsque l'attribut mode est SQLServer . La valeur par défaut de cet attribut est data source=127.0.0.1;user id=sa;password= . Si possible, cette valeur doit utiliser des connections fiabilisées pour éviter de stocker un userID et un mot de passe SQL dans les fichiers web.config ou machine.config . Pour prendre en charge le mode d'état SQL Server, vous devez exécuter le fichier par lot InstallSqlState.sql sur le serveur cible SQL afin de créer la base de données ASPState, ainsi que les tableaux associés et les procédures stockées correspondantes. Ce fichier est installé par défaut dans le dossier %windir%\Microsoft.NET\Framework\ %version% .
 
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
 
  • activé
      Indique si la fonction de tracing est activée ou pas. Par défaut, la valeur de cet attribut est False .
  • localOnly
      Indique si le résultat de trace peut être affiché par des machines autres que l'hôte local ou pas. Par défaut, cet attribut a la valeur True .
  • pageOutput
      Indique si le résultat de trace est affiché sur la page ou stocké en mémoire et rendu accessible par l'URL spécial Trace.axd . Trace.axd associe à un HttpHandler qui affiche toutes les traces stockées pour une application donnée. Par défaut, la valeur de cet attribut est False .
  • requestLimit
      Indique le nombre de requêtes qui peuvent être stockées dans la mémoire tampon de traces lue par Trace.axd . Une fois indiqué le nombre total de traces de requêtes par cet attribut stocké, aucune autre trace ne sera stockée avant d'avoir nettoyé le journal de trace. La page affichée par Trace.axd comporte un lien destiné à nettoyer le journal de trace. La valeur par défaut de ce paramètre est 10 .
  • traceMode
      Indique l'ordre de tri des éléments dans la section Trace Information de la trace. Les valeurs acceptables sont SortByTime et SortByCategory . SortByCategory est utile quand vous utilisez Trace.Write et Trace.Warn avec vos propres noms de catégorie en tant que paramètres. La valeur par défaut de cet attribut est SortByTime .
 
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
 
  • level
      Indique le niveau de fiabilité à appliquer. Cet attribut peut avoir n'importe laquelle des valeurs définies par l'élément <securityPolicy> . La valeur par défaut de cet attribut est Full . Cet attribut est obligatoire.
  • originUrl
      Indique l'URL d'origine d'une application. Cet attribut permet le fonctionnement correct des classes comme WebRequest , qui peuvent avoir besoin des informations d'hôte d'origine pour certaines autorisations de sécurité. Cet attribut est facultatif.
 
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
 
  • path
      Indique le chemin vers le fichier ou le dossier auquel les paramètres de configuration contenus dans la paire de balises <location> doivent être appliqués.
  • allowOverride
      Indique si des fichiers de configuration enfants peuvent écraser ou pas des valeurs configurées dans la paire de balises <location> . Cet attribut verrouille les paramètres de configuration (c'est à dire, au niveau de machine.config ) pour lesquels vous souhaitez instaurer une certaine uniformité.
 
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.