1

我有一些针对一些被覆盖的 app.config 文件的单元测试。DataProtectionConfigurationProvider每个配置文件都有通过aspnet_regiis.exe使用的加密密码/用户名

在我创建它们的本地机器上,这一切都很好。现在,当这些部署并运行到我们的Visual Studio Team Services并运行构建定义时,针对加密凭据方法的测试会失败,因为:

System.Configuration.ConfigurationErrorsException:无法使用提供程序“DataProtectionConfigurationProvider”解密。来自提供者的错误消息:密钥在指定状态下无效。

我明白这个错误是由于没有在本地机器上运行 app/tests 的 aspnet_regiis.exe 引起的。

我的问题是这里的最佳做法是什么?因为即使我首先针对未加密的 app.config 文件构建了运行 aspnet_regiis.exe(我认为您可以这样做)的 Team Service 构建定义,我仍然会在一段时间内在线存储未加密的数据。

编辑:

答案帮助我使用了我需要使用的标识符,RsaProtectedConfigurationProvider而不是DataProtectionConfigurationProvider我在这里写了一些博客文章来解释我做了什么:

加密 app.config 文件中的凭据

4

1 回答 1

1

用于此的加密密钥使用机器密钥,该密钥将在 azure 服务器上与您的本地机器不同。手动设置机器密钥,使其在 web.config 中始终相同

请参阅这篇关于设置机器密钥的文章。 https://technet.microsoft.com/en-gb/library/cc755177(v=ws.10).aspx

于 2016-09-16T09:00:05.487 回答