我们需要在开发期间保护连接字符串 。在服务器上我们使用DPAPI工作正常。在开发期间,DPAPI不是一个选项,因为连接字符串需要在许多机器上解密。
用于开发的一些用户名/密码相当敏感,我们不希望它们浮动。所有开发人员能够解密它们都没关系,只是想确保如果其他人得到他们不能解密连接字符串的dev配置文件。由于外部限制,使用所有服务帐户而不是敏感用户名/密码不是一种选择。
我的第一个倾向是使用RSA提供程序在开发机器上加密和安装证书。
所以我的问题是;
1)你如何处理这个问题?
2)如果您采用RSA方法,那么有更多的文档而不是this
由于
答案 0 :(得分:2)
经过更多的研究,我们采用了RSA方法。找到了一些更新的文档here。如果您要走这条路,请务必阅读该链接中与RSA相关的所有内容。以下是我们使用的步骤,如果有人感兴趣的话......
- 仅限第一次
- 创建密钥容器,使其可导出
aspnet_regiis -pc "MyKeys" -exp
- 将此部分添加到配置文件
<configProtectedData>
<providers>
<add name="RsaProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0,
 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,
 processorArchitecture=MSIL"
keyContainerName="MyKeys"
useMachineContainer="true" />
</providers>
</configProtectedData>
- 加密连接字符串
aspnet_regiis -pef "connectionStrings" "C:\Working\MyApplication" -prov RsaProvider
- 发出配置文件
- 解密
aspnet_regiis -pdf "connectionStrings" "C:\Working\MyApplication"
-export keys(将创建keys.xml)
aspnet_regiis -pc "MyKeys" -exp
- 在其他一些机器上
-save keys.xml某处
- 导入密钥。确保名称(例如MyKeys)相同
aspnet_regiis -pi“MyKeys”keys.xml
-delete keys.xml !!!!!!!!!!!!!!
- 如果作为Web应用程序的一部分运行,则授予服务帐户权限
e.g。 aspnet_regiis -pa "PcscDev" "ASPNET"