加密 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 在这里解释我做了什么:
此加密密钥使用机器密钥,该密钥在 Azure 服务器上与您的本地机器上不同。手动设置机器密钥,使其在 web.config
中始终相同
请参阅这篇关于设置机器密钥的文章。.
https://technet.microsoft.com/en-gb/library/cc755177(v=ws.10).aspx
我有一些单元测试针对一些被覆盖的 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 在这里解释我做了什么:
此加密密钥使用机器密钥,该密钥在 Azure 服务器上与您的本地机器上不同。手动设置机器密钥,使其在 web.config
中始终相同请参阅这篇关于设置机器密钥的文章。. https://technet.microsoft.com/en-gb/library/cc755177(v=ws.10).aspx