Formato dei file di configurazione ASP.NET

Le informazioni di configurazione per le risorse ASP.NET sono contenute in un insieme di file di configurazione, ognuno dei quali è denominato Web.config. Ogni file di configurazione contiene una gerarchia nidificata di tag e sottotag XML con attributi che specificano le impostazioni di configurazione. Poiché i tag devono avere un formato XML corretto, per i tag, i sottotag e gli attributi viene effettuata la distinzione tra maiuscole e minuscole. I nomi di tag e di attributi sono caratterizzati da sequenze di lettere minuscole e maiuscole di tipo camel, ovvero il primo carattere di un nome di tag è minuscolo e la prima lettera di qualsiasi parola successiva concatenata è maiuscola. I valori di attributo sono caratterizzati da sequenze di lettere minuscole e maiuscole di tipo Pascal, ovvero il primo carattere è maiuscolo e la prima lettera di qualsiasi parola successiva concatenata è maiuscola. true e false sono eccezioni e sono sempre minuscole.

Tutte le informazioni di configurazione si trovano tra i tag XML principali <configuration> e </configuration>. All'interno di questi tag, le informazioni di configurazione sono raggruppate in due aree principali: l'area di dichiarazione del gestore della sezione di configurazione e l'area di impostazione della sezione di configurazione.

Le dichiarazioni del gestore della sezione di configurazione si trovano nella parte superiore del file di configurazione tra i tag <configSections> e </configSections>. In ogni dichiarazione contenuta in un tag <section> vengono specificati il nome della sezione che fornisce un determinato set di dati di configurazione e il nome della classe .NET Framework che elabora i dati di configurazione della sezione.

L'area delle impostazioni della sezione di configurazione segue l'area <configSections> e contiene le impostazioni di configurazione effettive. Esiste una sezione di configurazione per ogni dichiarazione nell'area <configSections>. Ogni sezione di configurazione contiene sottotag con attributi che contengono le impostazioni per la sezione.

Nell'esempio seguente, il file Web.config dichiara due gestori di configurazione <section>. Uno gestisce le impostazioni dell'applicazione e l'altro gestisce lo stato della sessione.

<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>

Un gestore della sezione di configurazione deve essere dichiarato una sola volta e può essere inserito nel file principale Machine.config del server o in un file Web.config nella directory virtuale che contiene i file dell'applicazione Web. I file di configurazione nelle sottodirectory ereditano automaticamente i gestori di configurazioni dichiarati nelle directory padre. Per ulteriori informazioni, vedere Ereditarietà di configurazione.

Le impostazioni di configurazione sono spesso nidificate sotto i tag di raggruppamento di sezioni. Questi tag di sezione di primo livello in genere rappresentano lo spazio dei nomi al quale vengono applicate le impostazioni di configurazione. Il tag di primo livello <system.net>, ad esempio, rappresenta le impostazioni per le classi di rete e il tag <system.web> rappresenta le impostazioni per le classi ASP.NET.

Nell'esempio seguente viene illustrata la nidificazione dei tag.

<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'infrastruttura di configurazione ASP.NET non fa distinzione tra i tipi dei dati di configurazione supportati dall'infrastruttura. Le classi dei gestori delle sezioni di configurazione elaborano tutti i dati Web.config. È possibile utilizzare i gestori delle sezioni di configurazione predefiniti disponibili con .NET Framework oppure creare i propri gestori per elaborare i dati di configurazione personalizzati.

Per informazioni sulla creazione dei tipi di configurazione personalizzati, vedere Creazione di nuove sezioni di configurazione.

Vedere anche

Configurazione di ASP.NET | Configurazione di applicazioni | Creazione di nuove sezioni di configurazione