Web.config : utiliser l’attribut « configSource »
Depuis Asp.Net 2.0, toutes les sections d’un fichier web.config définissent l’attribut "configSource".
Il permet d’externaliser une section de configuration dans un fichier.
Pourquoi externaliser ?
Plusieurs raisons peuvent vous pousser à externaliser des sections de configuration :
- Amélioration de l'organisation,
- Meilleur lisibilité,
- Facilité de mise à jour,
- Gestion des droits,
- Mutualisation,
- etc.
Syntaxe & exemple
La syntaxe est simple, il suffit d'ajouter l'attribut "configsource", la valeur de l'attribut sera le chemin relatif vers le fichier de configuration.
<section configSource="chemin_relatif_vers_le_fichier"/>
Prenons le fichier web.config suivant :
web.config
En externalisant la section "appSettings", vous obtenez les deux fichiers suivants :
Web.config

appSettings.config
Quelques scénarios d'utilisation.
Voici trois cas concrets où cela m'a été utile :
- Sur plusieurs projets, cet attribut a permis de séparer la configuration de chaque module à moindre coût. Le résultat est une meilleur lisibilité et la facilité de mise à jour.
- L'externalisation permet de gérer finement les droits sur les fichiers de configuration. Vous pouvez dire que seul les membres du groupe "Administrateurs" peuvent modifier le fichier "web.config" tandis que les membres d'un autre groupe pourront modifier le fichier appSetting.config.
- Selon l'environnement (dev, integration, prod...) seule une partie du fichier web.config change. L'externalisation de ces sections permet de gérer plus simplement la configuration des différents environnements.
Et la sécurité ?
Vous ne voulez pas qu'un internaute accède à votre fichier depuis son navigateur web.
Pour cela deux solutions :
- Nommer les fichiers avec l'extension ".config"
- Placer les fichiers dans le répertoire "App_data".
La référence sur la MSDN
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :