Crypter le mot de passe dans L'application.config

Je veux crypter le mot de passe dans la chaîne de connexion. Lorsque je fais une connexion à DB, la chaîne de connexion est ouvertement stockée dans App.config et moi devons trouver un moyen de ne garder que le mot de passe crypté.

21
demandé sur NDeveloper 2011-04-02 15:31:06

3 réponses

Disons que c'est votre chaîne de connexion:

<connectionStrings>
    <add name="cs" connectionString="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=XXSDFASFDKSFJDKLJFDWERIODFSDFHSDJHKJNFJKSD;"/>
</connectionStrings>

, Alors vous pouvez faire quelque chose comme ceci:

string myCs = System.Configuration.ConfigurationManager.ConnectionStrings["cs"].ConnectionString;

System.Data.SqlClient.SqlConnectionStringBuilder csb = new System.Data.SqlClient.SqlConnectionStringBuilder(myCs);
csb.Password = EncDecHelper.Decrypt(csb.Password);
myCs = csb.ToString();

Vous pouvez écrire EncDecHelper.Decrypt en utilisant des exemples d'ici: chiffrer et déchiffrer une chaîne

20
répondu HABJAN 2017-05-23 11:54:38

Utilisez le connectionStrings Section de configuration et crypter toute la section-au lieu de simplement le mot de passe.

Ceci est plus sûr car votre configuration d'application n'aura plus non plus les noms de serveur et d'utilisateur en texte brut.

Il existe des documents pratiques pour chiffrer les sections de configuration sur MSDN pour RSA ouDPAPI .

17
répondu Oded 2014-07-28 16:29:57

Peut-être décrypter la chaîne de connexion de votre configuration avant le chargement de l'application.

-1
répondu Svisstack 2011-04-02 11:34:05