我有以下connectionString string
:
"DataSource=R7gIrRzkARUJsQBUYXKCPpH8MdqtQ5Sd+lt4kyBEZBY=; userid=weRGgY7PERBTg2WPPzVerIlMP93kmQbTSuKsJKyDHFU=; password=qcMxEGU75lJ1VD5OaaujnLzleR/7ZQDco3kddfwTOvI=;"
将字符串传递给解密函数后,我将在下面使用它:
iDB2Connection.ConnectionString = connectionString;
我的问题是,解密connectionString字符串中值的最佳方法是什么?
一种可能性是将字符串转换为DataSet
并调用以下代码:
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);
但我还没有想出如何成功地做到这一点。
感谢任何帮助。
答案 0 :(得分:2)
问题是您的源是 OleDb 连接sting,而不是 SQL Server 连接字符串。我建议改为使用OleDbConnectionStringBuilder
:
var connectionString = "DataSource=R7gIrRzkARUJsQBUYXKCPpH8MdqtQ5Sd+lt4kyBEZBY=; userid=weRGgY7PERBTg2WPPzVerIlMP93kmQbTSuKsJKyDHFU=; password=qcMxEGU75lJ1VD5OaaujnLzleR/7ZQDco3kddfwTOvI=;";
var DBConfig = new OleDbConnectionStringBuilder(connectionString);
string ConnectionString =
"DataSource=" + Decrypt(DBConfig["datasource"].ToString())
//+ ";Initial Catalog=" + Decrypt(DBConfig.InitialCatalog)
+ ";UserID=" + Decrypt(DBConfig["userid"].ToString())
+ ";Password=" + Decrypt(DBConfig["password"].ToString());
您可以尝试将解密后的值从源字符串映射到Sql Server连接字符串,但是我没有看到通常存在的database
密钥通过OleDb
连接到SQL服务器。