Le stringhe di connessione ai database dovrebbero essere sempre salvate nella sezione connectionStrings
del file web.config
:
<connectionStrings> <add name="DefaultDB" connectionString="Data Source=.SQLEXPRESS;Initial Catalog=Rubrica" providerName="System.Data.SqlClient"/> </connectionStrings>
ASP.NET, infatti, blocca automaticamente qualsiasi richiesta diretta del file web.config, in modo che gli utenti esterni non possano scaricarlo o visualizzarne il codice. Utilizzando questo approccio, per recuperare la stringa di connessione si può utilizzare l’oggetto WebConfigurationManager
:
string conn = WebConfigurationManager.ConnectionStrings["DefaultDB"].ConnectionString;
Accedendo alla collezione ConnectionString
di WebConfigurationManager
(per indice o con il nome corrispondente all’attributo name, nel nostro esempio DefaultDB), si possono recuperare tutte le stringhe di connessione definite per l’applicazione.
Se si vuole ottenere una protezione maggiore per le stringhe di connessione, è possibile crittografare il file web.config
(o solo alcune delle sue sezioni), utilizzando l’applicazione aspnet_regiis.exe, come esemplificato nella documentazione in linea.