Partager via


Format des fichiers de configuration ASP.NET

Les informations de configuration des ressources ASP.NET sont contenues dans une collection de fichiers de configuration appelés Web.config. Chacun de ces fichiers contient une hiérarchie imbriquée de balises et de sous-balises XML dotées d'attributs qui spécifient les paramètres de configuration. Étant donné que les balises doivent être au format XML correct, les balises, les sous-balises et les attributs respectent la casse. Les noms de balise et d'attribut sont de casse mixte, ce qui signifie que le premier caractère d'un nom de balise est en minuscules et que la première lettre des mots concaténés suivants est en majuscules. Les valeurs d'attribut sont de casse Pascal, ce qui signifie que le premier caractère est en majuscules, tout comme la première lettre des mots concaténés suivants. Les exceptions sont true et false, qui sont toujours en minuscules.

L'ensemble des informations de configuration réside entre les balises XML racines <configuration> et </configuration>. Ces informations sont regroupées en deux zones principales : la zone de déclaration du gestionnaire des sections de configuration et la zone des paramètres des sections de configuration.

Les déclarations du gestionnaire des sections de configuration apparaissent en haut du fichier de configuration, entre les balises <configSections> et </configSections>. Chaque déclaration contenue dans une balise <section> spécifie le nom d'une section qui fournit un ensemble particulier de données de configuration et le nom de la classe .NET Framework qui traite les données dans cette section.

La zone des paramètres des sections de configuration suit la zone <configSections> et contient les paramètres de configuration en cours. Il existe une section de configuration pour chaque déclaration dans la zone <configSections>. Chaque section contient des sous-balises avec les attributs qui contiennent les paramètres pour cette section.

L'exemple de fichier Web.config suivant déclare deux gestionnaires <section> de configuration. L'un gère les paramètres de l'application, l'autre l'état de session.

<configuration>
   <configSections>
      <section name="appSettings"   
         type="System.Configuration.NameValueFileSectionHandler, 
         System, Version=1.0.3300.0, 
         Culture=neutral, PublicKeyToken=b77a5c561934e089"/>         
      <section name="sessionState" 
         type="System.Web.SessionState.SessionStateSectionHandler, 
         System.Web, Version=1.0.3300.0, Culture=neutral, 
         PublicKeyToken=b03f5f7f11d50a3a" 
         allowDefinition="MachineToApplication"/>
   </configSections>

   <appSettings>
      <add key="dsn" value="localhost;uid=MyUserName;pwd=;"/>
      <add key="msmqserver" value="server\myqueue"/>
   </appSettings>
   
   <sessionState cookieless="true" timeout="10"/>
</configuration>

Vous ne devez déclarer un gestionnaire des sections de configuration qu'une seule fois. Vous pouvez le placer dans le fichier Machine.config racine du serveur ou dans un fichier Web.config du répertoire virtuel contenant les fichiers de l'application Web. Les fichiers de configuration des sous-répertoires héritent automatiquement des gestionnaires de configuration déclarés dans les répertoires parents. Pour plus d'informations, consultez Héritage de configuration.

Les paramètres de configuration sont souvent imbriqués les uns dans les autres, sous les balises de regroupement des sections. Ces balises de section de niveau supérieur représentent généralement l'espace de noms auquel les paramètres de configuration s'appliquent. Par exemple, la balise <system.net> de niveau supérieur représente les paramètres pour les classes réseau et la balise <system.web> représente les paramètres pour les classes ASP.NET.

L'exemple suivant illustre l'imbrication des balises.

<configuration>
   <configSections>
      <sectionGroup name="system.net">
         <section name="authenticationModules"
            type="System.Net.Configuration.NetAuthenticationModuleHandler, 
            System, Version=1.0.3300.0, Culture=neutral, 
            PublicKeyToken=b77a5c561934e089"/>                               
         <section name="webRequestModules" 
            type="System.Net.Configuration.WebRequestModuleHandler, 
            System, Version=1.0.3300.0, Culture=neutral,
            PublicKeyToken=b77a5c561934e089"/>
       </sectionGroup>

       <sectionGroup name="system.web">
          <section name="authorization" 
             type="System.Web.Configuration.AuthorizationConfigHandler, 
             System.Web, Version=1.0.3300.0, Culture=neutral, 
             PublicKeyToken=b03f5f7f11d50a3a"/>            
          <section name="sessionState" 
             type="System.Web.SessionState.SessionStateSectionHandler,
             System.Web, Version=1.0.3300.0, Culture=neutral,
             PublicKeyToken=b03f5f7f11d50a3a"
             allowDefinition="MachineToApplication"/>        
       </sectionGroup>
    </configSections>

   <system.net>
      <! — Net Class Settings would go here. -->
   </system.net>
   <system.web>
        <authorization>
            <allow users="*"/> <!-- Allow all users -->
            <!-- Allow or deny specific users.
            allow users="[comma separated list of users]"
                  roles="[comma separated list of roles]"/>
            <deny users="[comma separated list of users]"
                  roles="[comma separated list of roles]"/>
            -->
        </authorization>
        <sessionState 
            sqlConnectionString="data source=localhost;
               Integrated Security=SSPI;
               Initial Catalog=northwind"
            cookieless="false" 
            timeout="10"/>
   </system.web>
</configuration>

L'infrastructure de configuration ASP.NET ne fait aucune supposition quant aux types de données de configuration qu'elle prend en charge. Les classes du gestionnaire des sections de configuration traitent toutes les données Web.config. Vous pouvez utiliser les gestionnaires prédéfinis fournis avec le .NET Framework ou créer les vôtres pour traiter vos propres données de configuration personnalisées.

Pour plus d'informations sur la création de types de configuration personnalisés, consultez Création de nouvelles sections de configuration.

Voir aussi

Configuration ASP.NET | Configuration d'applications | Création de nouvelles sections de configuration