我有一些针对一些被覆盖的 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
我在这里写了一些博客文章来解释我做了什么: