加密 username/password 个文件 (app.config) 并在 Visual Studio 个团队服务上进行单元测试

Encrypting username/password files (app.config) and Unit Tests on Visual Studio Team Services

我有一些单元测试针对一些被覆盖的 app.config 文件。每个配置文件都通过 aspnet_regiis.exe

使用 DataProtectionConfigurationProvider 加密了 password/username

这在我创建它们的本地机器上一切正常。现在,当部署这些并且 运行 我们的 Visual Studio 团队服务 并且构建定义是 运行 时,针对加密凭据方法的测试失败,因为:

System.Configuration.ConfigurationErrorsException: Failed to decrypt using provider 'DataProtectionConfigurationProvider'. Error message from the provider: Key not valid for use in specified state.

我知道这个错误是由于 运行 在本地计算机上 aspnet_regiis.exe 没有 app/tests 将 运行 宁在。

我的问题是这里的最佳做法是什么?因为即使我首先针对未加密的 app.config 文件构建了 运行s aspnet_regiis.exe(我想你可以这样做)的团队服务构建定义,我仍然在线存储未加密的数据用于一会儿。

编辑:

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

Encrypting credentials in app.config files

此加密密钥使用机器密钥,该密钥在 Azure 服务器上与您的本地机器上不同。手动设置机器密钥,使其在 web.config

中始终相同

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