3

我在加密配置部分时遇到了一些麻烦。我们使用来自外部供应商的包,web.config 的结构如下:

网络配置

<appSettings file="customSettings.config">
  <add key="generic_setting" value="true"/>
  <add key="another_generic_setting" value="false"/>
</appSettings>

customSettings.config

<appSettings>
  <add key="company_db_username" value="sa"/>
  <add key="company_db_password" value="secret"/>
</appSettings>

我们使用 WiX 创建安装包 (msi),以便我们可以在我们的组织中部署它。我们执行的一项自定义操作是 appSettings 部分的加密。不幸的是,在上面描述的情况下,它只加密了 web.config 文件中的部分,而让 customSettings.config 保持不变。

我确实注意到 configSource 属性在加密方面比 file 属性好一点,但它不支持合并两个文件中的元素。现在我可以在加密自定义操作中的所有内容之前以编程方式将 customSettings.config 的元素合并到 web.config 中,但我想知道是否有更清洁的解决方案。

4

1 回答 1

1

根据您的示例,您要加密的信息是数据库用户名和密码,一种替代方法是使用 Windows 身份验证第一次连接到您的数据库。初始用户的权限非常有限。

使用该连接获取更高权限帐户的凭据/连接字符串,您之前使用项目级 DB 加密存储了该帐户(请参阅 OPEN SYMMETRIC KEY 和 ENCRYPTBYKEY)。

于 2011-12-26T13:41:11.903 回答