octobre
2008
Une question qui reviens souvent sur les forums, c’est « Comment je peux crypter le contenue de mon fichier de configuration ? »
La réponse est assez simple : Oui vous pouvez.
Pas besoin de réinventer la roue, ou de coder sa propre moulinette, encore une fois le framework à pensé à tout.
En fait les fichiers de configuration sont partagés en sections. Les sections qui nous intéresse sont :
– La section appsettings
– La section connectionStrings
Le framework nous permet de crypter ces deux sections grâce à deux providers :
– RsaProtectedConfigurationProvider
et
– DpapiProtectedConfigurationProvider
L’utilisation de ces providers est assez simple :
On commence par récupérer le fichier de configuration de l’application :
Ensuite on obtient la section qui nous intéresse :
il ne reste plus qu’a faire les vérifications d’usage et à crypter le contenu :
if (settings != null)
{
if (!settings.SectionInformation.IsLocked)
{
settings.SectionInformation.ProtectSection(provider);
settings.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
}
Le décryptage pour l’accès au données est complètement transparent.
2 Commentaires + Ajouter un commentaire
Archives
- juillet 2012
- mars 2012
- février 2012
- novembre 2011
- octobre 2011
- mars 2011
- novembre 2010
- octobre 2010
- septembre 2010
- août 2010
- avril 2010
- février 2010
- janvier 2010
- novembre 2009
- octobre 2009
- septembre 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juin 2008
- mai 2008
- avril 2008
- février 2008
- mai 2007
- avril 2007
- mars 2007
- février 2007
- janvier 2007
Pour modifier et updater la valeur dans le fichier de configuration : Oui
Pour lire la valeur dans le fichier de configuration : Non
« Le décryptage pour l’accès au données est complètement transparent. »
Mais ne faut il pas faire le décryptage sois même pour modifier/ajouter des valeurs dans le fichier de configuration ?
Moi je fais donc ceci por updater mon fichie :
if (ettings.SectionInformation.IsProtected)
{
settings.SectionInformation.UnprotectSection();
}
settings.SectionInformation.ProtectSection(provider);
settings.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
//Update du fichier
//cryptage avec le code de l’article