如何保护Windows窗体中的连接字符串

时间:2019-01-22 16:14:30

标签: c# .net winforms sql-server-2012

我正在用C#创建Windows窗体应用程序。我在设置中存储数据源和初始目录。但是在连接字符串中也有用户名和密码。

为什么要在“设置”中存储,是因为在部署时,我可以轻松地通过软件进行设置。 我希望部署简单,我希望动态连接字符串。

所以任何人都可以指导我如何存储所有内容,因为设置是普通文本文件,用户可以轻松地对其进行更改。

我有多用户系统。所以一台PC中的SQL Server和所有用户都在不同的PC中。因此,我不认为在数据库中创建所有用户。

1 个答案:

答案 0 :(得分:0)

强烈建议不要使用SQL身份验证,而是使用用户的Windows帐户访问数据库。如果您的应用程序在AD域中运行,则无需授予每个用户对数据库的访问权限,但可以为此目的使用AD组。有关如何在连接字符串中启用Windows身份验证,请参见此link

有一些选项可以加密文件中的连接字符串。但是,这将需要一些努力,因为它将添加另一个准备或部署步骤来为每台计算机/用户执行加密。 此外,没有可用的现成工具可用于为SmartClient应用程序加密配置文件。因此,您还必须实施加密。有关详情,请参见此link

请注意,即使您使用加密,至少当前用户帐户也必须能够解密设置才能运行程序。这也意味着精通技术的用户可以创建一个小型应用程序,该应用程序可以还原加密并可以通过这种方式访问​​凭据。因此,使用Windows身份验证确实是更好的选择。