【发布时间】:2014-08-21 18:24:47
【问题描述】:
我正在开发一个 Windows 桌面程序。该程序将连接到远程 SQL 服务器。它具有 3 层架构。因此,该解决方案包含几个 ClassLibraries 以及一个主要的 Windows 窗体应用程序。使用这样的连接字符串我觉得不安全:
string connStr = "Data Source=94.xx.xxx.xx; Initial Catalog=xxxxx; User Id=xxxxx; Password=xxxxx";
这样使用安全吗?有人可以反编译“.exe”文件并访问此连接字符串吗?我知道我可以使用 app.config 文件。但我未能导入“ConfigurationManager”,无法使用“ConfigurationManager.ConnectionStrings[“xxx”].ConnectionString.ToString();”代码。此外,它也没有安全感。我认为,最好的做法是加密连接字符串。我找到了一个例子:
http://www.codeproject.com/Articles/18558/Encrypting-windows-application-connection-strings
但它使用的是旧版本的 Visual Studio。而且我不知道如何添加“带有包含项目主要输出的自定义操作的设置项目”。
有没有其他方法可以在 3 层架构的 Windows 窗体应用程序中安全地使用连接字符串?
PS:我正在使用适用于 Windows 桌面的 Visual Studio Express 2013
【问题讨论】:
-
但是,实际上在您的应用程序或机器中安全存储某些密钥的唯一方法是根本不存储它们。
标签: c# asp.net encryption connection-string