1

我们正在部署一个客户端应用程序,需要加密 system.serviceModel 配置组。我一直在 StackOverflow 上搜索最好的方法,大多数响应要么是“将 app.config 重命名为 web.config,使用 ASP.NET 实用程序加密,然后部署”或“覆盖”保护部分的安装方法”。

我们正在使用 ClickOnce,因此应用程序是按用户安装的,因此我们可能会为每个用户使用 DPAPI。

我知道如何通过 Protect/Unprotect 部分加密/取消加密部分,但我不知道调用这些部分的最佳位置。

黑暗中的一些镜头:

在安装时调用保护、在应用启动时取消保护以及在应用关闭时进行保护。

安装时调用保护,取消保护是自动完成的。这让我感到困惑,因为我找不到 DPAPI 发挥其魔力的基本方式,而且我不相信我不理解的东西。

4

1 回答 1

1

为什么您需要在应用启动时专门“取消保护”?.NET 将为您透明地解密这些条目。

所以基本上:

  • 在文件将驻留的那台机器上安装时加密
  • 像往常一样使用它!

无需继续解密 .NET 配置部分 - .NET 将根据需要执行此操作。这样,您可以将MyApp.exe.config完全或部分加密的内容留在磁盘上,并且仅在内存中,您将拥有一些已解密的条目。

查看 Jon Galloway关于该主题的博客文章。

于 2010-06-23T05:32:19.870 回答