【发布时间】:2015-10-22 08:06:54
【问题描述】:
我在 Visual Studio 2015 中使用 C#。我编写了一个 Windows 窗体应用程序来创建一个对象并将其序列化。该对象包含可用于构造 MySQL 选择命令的信息。所有这些都运行良好。
现在我正在编写一个 Windows 服务来使用这些对象来监控 MySQL 数据库。我已经能够在我的计算机上安装并运行 Windows 服务,所以我知道它工作正常。
我可以使用 Windows 服务连接到 MySQL,以便它可以监控数据库。现在,我在 OnStart 方法中使用这段代码:
try{
string connectionString = @"server=my_server;database=my_database;userid=my_username;password=my_password;";
MySqlConnection conn = new MySqlConnection(connectionString);
conn.Open()
catch(Exception ex)
{
//Log error
}
问题是这个程序将用于多个数据库,所以连接字符串中的密码需要更改。我可以轻松地将连接字符串保存到序列化对象,但我不知道安全获取密码的正确方法是什么。有没有更好的方法从 Windows 服务连接到 MySQL?我是 Windows 服务的新手,所以如果我遗漏了一些简单的东西,我很抱歉。
[编辑]
我确实考虑过的一件事是从 Windows 窗体应用程序向 Windows 服务发送一个 SecureString(我还不知道该怎么做),然后在 Windows 服务中使用它来连接。我可以看到该方法的唯一问题是,如果服务关闭,那么这些密码就会丢失,需要重新输入。
【问题讨论】:
标签: c# mysql windows-services connection-string