我们正在部署客户端应用程序,需要加密system.serviceModel配置组。我一直在搜索StackOverflow,以获得最好的方式,并且大多数响应都是“将app.config重命名为web.config,使用ASP.NET实用程序加密,并部署”或“覆盖”用于保护“。
部分的安装方法我们正在使用ClickOnce,因此基于每个用户安装应用程序,因此我们可能会按用户使用DPAPI。
我知道如何通过Protect / Unprotect部分加密/解密部分,但我无法找出最好的地方来调用它们。
黑暗中的一些镜头:
安装时调用保护,在应用启动时取消保护,并在应用关闭时保护。
安装时调用保护,自动完成unprotect。这让我感到困惑,因为我无法找到DPAPI发挥其魔力的基本方式,我不相信我不理解的东西。
答案 0 :(得分:1)
为什么需要在应用启动时专门“取消保护”? .NET将透明地为您解密这些条目。
基本上是这样的:
没有必要继续解密.NET配置部分 - .NET将根据需要执行此操作。这样,您可以将MyApp.exe.config
完全或部分加密,保留在磁盘上,并且仅在内存中,您将有一些被解密的条目。
查看Jon Galloway关于此主题的blog post。