桌面应用程序的连接字符串管理

Cla*_*tin 3 .net c# encryption wpf sql-server-2008

我在C#/ WPF中创建了一个桌面应用程序,它通过代码中指定的常量连接字符串连接到SQL Server 2008实例,如下所示(用于测试目的):

private string GetConnectionString()
{
    //test
    return "Data Source=[server IP]; Initial Catalog=[database name]; User ID=[user ID]; Password=[smart password];";
}
Run Code Online (Sandbox Code Playgroud)

该应用程序将由各种用户使用,并将通过ClickOnce,.zip存档或自定义安装程序进行部署.它还通过请求应用程序访问用户名和密码来分离自定义登录功能.

存储桌面应用程序(IP,数据库,SQL Server用户,密码)的连接字符串详细信息的最佳做法是什么?如果连接字符串在夜间更改,这是更新它的最佳方法,而不强制用户更新到我的应用程序的最新版本?用户不应该能够看到/拦截/反编译连接字符串,所以我想我必须使用某种加密.我对你的询问有什么建议吗?

Yur*_*uts 5

即使您将连接字符串编译到应用程序中,仍然可以使用Ildasm.exe(MSIL反汇编程序)工具查看它们,因为字符串是程序集元数据的一部分.

也许这个问题可以帮到你.