动态地为连接字符串提供用户名和密码

时间:2014-02-15 10:29:41

标签: c# mysql connection

我使用MySql作为后端数据库使用C#winform应用程序。使用App.config文件,应用程序读取连接字符串以连接数据库,如下所示:

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
   <connectionstring>
  <addkey="MySQL.DB"value="server=localhost;database=mysqldbname;user=username;password=12345678;">
   </add>
 </connectionstring>
 </configuration>

有没有办法可以通过输入用户名和密码来提供不是来自App.config而是来自应用程序用户的用户名和密码?这样我们就能够保护敏感数据。其他信息可以从app.config中读取,如数据库名称,服务器等。

艾哈迈德

3 个答案:

答案 0 :(得分:3)

您可以拥有appSettings

   <appSettings>
        <add key="ConFormat" value="server=localhost;database=mysqldbname;user={0};password={1};"/>
    </appSettings>

阅读并设置值

var formatString  = ConfigurationManager.AppSettings["ConFormat"].ToString();
var conString  = string.Format(formatString , SecureUserName, SecurePW);

答案 1 :(得分:1)

如果您正在使用原始ADO.NET,那么您可以使用连接字符串构建器,在您的情况下可能是MySqlConnectionStringBuilder。使用配置文件中的连接字符串创建一个新实例,设置适当的属性,然后从ConnectionString属性中获取结果。

顺便说一句,您可以使用受保护的配置将密码和其他敏感数据存储在配置文件中以加密它。

答案 2 :(得分:0)

像这样更改app.config中的代码

<add key="MySQL.DB"value="server=localhost;database=mysqldbname;user=&usernamefromuser;password=&passfromuser;">

添加一个用于连接的按钮和两个用于用户名和密码的文本框

按钮代码:

//other code for mysql variables ...
string connectionStr= connStrFrom_App_Config.Replace("&usernamefromuser",texBox1.Text).Replace("&passfromuser",textBox2.Text);
//other code for connecting