Il web.config è un file di configurazione dell’allpicazione asp.net
E’ un file XML diviso in sezioni, ciascuna della quali ha un compito ben preciso.
Vediamo in basso un esempio di web.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
</appSettings>
<system.web>
<globalization culture="IT-it"
uiCulture="IT-it"
requestEncoding="iso-8859-1"
responseEncoding="iso-8859-1"
/>
<compilation debug="true"/>
<customErrors mode="RemoteOnly" defaultRedirect="error.htm">
</customErrors>
<sessionState
mode="Inproc"
cookieless="false"
timeout="30"
/>
</system.web>
</configuration>
Possiamo notare due parti pricipali: appSettings e system.web
Nella prima parte troviamo delle variabili di configurazione, nella seconda informazioni sulla modalità di funzionamento dell’applicazione.
AppSettings
In questa sezione inseriamo delle variabili di configurazione che potranno essere lette a runtime. Possimao inserire stringhe di connessione, percorsi di file, o altre informazioni che riteniamo ci servano per tutta l’applicazione.
Vediamo un esempio
<configuration>
<system.web>
<appSettings>
<add key="connStr" value="server=(NomeServer);database=NomeDatabase;Integrated Security=SSPI" />
</appSettings>
</configuration>
Possiamo poi leggere i valori nelle nostre webform
private void openDB(object sender, EventArgs e)
{
string connectionInfo = ConfigurationSettings.AppSettings["connStr"];
SqlConnection connDB = new SqlConnection(connectionInfo);
connDB.Open();
}
globalization
La sezione è utilizzata per definire le impostazioni internazionali per tutta lìapplicazione.
<globalization
culture="IT-it"
uiCulture="IT-it"
requestEncoding="iso-8859-1"
responseEncoding="iso-8859-1"
/>
compilation
Ci dice se siamo in debug o produzione. È opportuno impostarlo a false quando siamo su un server di produzione e l’applicazione sta girando.
customErrors
Consenete una gestione personalizzata degli errori, che non vengono gestiti al livello di IIS, ma di applicazione.
<customError mode="RemoteOnly|On|Off" />
sessionState
Abbiamo tre modalità per memorizzare le variabili di sessione (Inproc, SQLServer, StateServer), con stabilità e performance diverse.
Inproc: all'interno del processo (più veloce, meno stabile)
StateServer: la gestione viene affidata al server (una via di mezzo)
SQLServer: la gestione viene affidata sql server (lento e richiede SQL server e la configurazione di un database apposta)
C’è poi la proprietà timeout che dice per quanti minuti verranno conservate le informazioni
Vediamo un esempio
<configuration>
<system.web>
<sessionState
timeout="10"
mode=" Inproc "
cookieless="false"
/>
</system.web>
</configuration>
impersonation
<configuration>
<system.web>
<identity impersonate="true" userName="morphX" password="m7HJH7s" />
</system.web>
</configuration>
Effettua una impersonificazione di un utente specifico, con tutti i diritti su file cartelle e database che ne conseguono.