Asp.net 加密自定义配置设置
我在加密配置部分时遇到一些问题。我们使用来自外部供应商的软件包,web.config的结构如下: web.configAsp.net 加密自定义配置设置,asp.net,encryption,web-config,wix,configsection,Asp.net,Encryption,Web Config,Wix,Configsection,我在加密配置部分时遇到一些问题。我们使用来自外部供应商的软件包,web.config的结构如下: web.config <appSettings file="customSettings.config"> <add key="generic_setting" value="true"/> <add key="another_generic_setting" value="false"/> </appSettings> <appSet
<appSettings file="customSettings.config">
<add key="generic_setting" value="true"/>
<add key="another_generic_setting" value="false"/>
</appSettings>
<appSettings>
<add key="company_db_username" value="sa"/>
<add key="company_db_password" value="secret"/>
</appSettings>
customSettings.config
<appSettings file="customSettings.config">
<add key="generic_setting" value="true"/>
<add key="another_generic_setting" value="false"/>
</appSettings>
<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中,但我想知道是否有更干净的解决方案。根据您的示例,您加密的信息是DB用户名和密码,一种替代方法是使用Windows身份验证首次连接到数据库。初始用户将拥有非常有限的权限
使用该连接获取更高权限帐户的凭据/连接字符串,您以前使用项目级DB加密(请参阅OPEN SYMMETRIC KEY和ENCRYPTBYKEY)存储该帐户。我还没有看到比我在自己的问题中提到的解决方案更好的解决方案,所以我决定这样做。在我的示例中,我确实使用了数据库凭据,但还有其他需要加密的应用程序设置。不过,你的答案是一个很好的方法。谢谢