如果开发加密自己的机器上使用RSAProtectedConfigurationProvider连接字符串的app.config部分,而这随后被部署到用户的工作站上,可以将该用户的工作站(或服务器,用于那件事),自动解密连接字符串?部署的连接字符串
会某种重要的出口/安装的需要?这个怎么用? 我意识到它不是防弹的。我在寻找关于部署是否容易和/或使用这种加密连接字符串的建议。
如果开发加密自己的机器上使用RSAProtectedConfigurationProvider连接字符串的app.config部分,而这随后被部署到用户的工作站上,可以将该用户的工作站(或服务器,用于那件事),自动解密连接字符串?部署的连接字符串
会某种重要的出口/安装的需要?这个怎么用? 我意识到它不是防弹的。我在寻找关于部署是否容易和/或使用这种加密连接字符串的建议。
这是可能的。有API来做到这一点(看System.Security.Cryptography
命名空间),或在命令行中,你可以使用ASPNET_REGIIS:
aspnet_regiis -pc -exp : create an exportable key pair
aspnet_regiis -px : export an RSA key pair to an XML file
aspnet_regiis -pi : import an RSA key pair from an XML file
aspnet_regiis -pa : add access for an account to a key container
当然,使用加密时,你只是代保护数据的问题(你的连接字符串)由保护密钥的问题。
在你的榜样,因为你,因为你说你知道这不是防弹的都知道,用户将需要访问密钥容器,以便将能够解密加密的连接字符串。
此外,人谁得到包含导出密钥对XML文件的保持就可以这样做。
UPDATE
部署过程会是这样的:
使用受保护的配置提供程序(如RSAProtectedConfigurationProvider
)加密的节将自动解密,前提是运行该应用程序的Windows标识具有对RSA密钥容器的读取权限。
谢谢。你能否详细说明这个关键容器?这是我需要知道的 - 这是如何从开发人员工作站部署到目标机器的?目标机器如何自动解密? – 2012-02-23 16:13:44
@PittsburghDBA - 查看更新。 – Joe 2012-02-23 18:58:00
太棒了。谢谢。 – 2012-02-23 21:19:19