2016-02-01 1 views
0

Je stocke la chaîne de connexion, le nom d'utilisateur, le mot de passe dans un fichier connectionString.config. Existe-t-il un moyen de décrypter toutes ces valeurs et de se connecter comme je le ferais normalement si les valeurs n'étaient pas cryptées?Décryptage des données AES connectionString.config avant utilisation

Toutes les suggestions sont les bienvenues car je ne suis pas sûr de savoir où aller, car je n'ai pas trouvé les docs de Microsoft très utiles.

connectionString.config

<connectionStrings> 
    <add name="as400" 
     connectionString="DataSource=AgIrRzkARUJsQBUYXKCPpH8MdqtQ5Sd+lt4kyBEZBY=; userid=tRGgY7PERBTg2WPPzVerIlMP93kmQbTSuKsJKyDHFU=; password=kMxEGU75lJ1VD5OaaujnLzleR/7ZQDco3kddfwTOvI=;"/> 
</connectionStrings> 

App.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
    <appSettings file="AppSettings.config"/> 
    <connectionStrings configSource="connectionStrings.config"/> 
</configuration> 

code d'application

//Open connection to the iSeries 
      iDB2Connection cn = new iDB2Connection(); 
      cn.ConnectionString = ConfigurationManager.ConnectionStrings[database].ConnectionString; 

Répondre

1

Pour établir une connexion SQL, vous devez d'abord décrypter la chaîne de connexion, le code ci-dessous vous guidera dans la bonne direction.

DataSet dsConnection = new DataSet(); 
dsConnection.ReadXml(System.Web.Hosting.HostingEnvironment.MapPath("~/ConnectionString.Config.xml")); 
String connection = dsConnection.Tables[0].Rows[0]["connectionstring"].ToString(); 
SqlConnectionStringBuilder DBConfig = new SqlConnectionStringBuilder(connection); 
string ConnectionString = "Data Source=" + Decrypt(DBConfig.DataSource) + ";Initial Catalog=" + Decrypt(DBConfig.InitialCatalog) + ";User ID=" + Decrypt(DBConfig.UserID) + ";Password=" + Decrypt(DBConfig.Password); 
iDB2Connection cn = new iDB2Connection(); 
cn.ConnectionString = ConnectionString; 

Tout d'abord, vous devez créer la fonction Décrypter pour le chiffrement AES, vous pouvez appeler cette fonction comme le code ci-dessus.

Merci,
Selvakumar S

+0

Est-ce que 'dsConnection.ReadXml (System.Web.Hosting.HostingEnvironment.MapPath ("~/ConnectionString.Config.xml"));' encore du travail si mon dossier est ConnectionString. config et non connectionString.config.xml? – HappyCoding