Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 加密自定义配置设置_Asp.net_Encryption_Web Config_Wix_Configsection - Fatal编程技术网

Asp.net 加密自定义配置设置

Asp.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

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

web.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>

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)存储该帐户。

我还没有看到比我在自己的问题中提到的解决方案更好的解决方案,所以我决定这样做。在我的示例中,我确实使用了数据库凭据,但还有其他需要加密的应用程序设置。不过,你的答案是一个很好的方法。谢谢