代码之家  ›  专栏  ›  技术社区  ›  Scott Baker

MVC2.NET 4.0应用程序中的连接字符串加密

  •  1
  • Scott Baker  · 技术社区  · 14 年前

    我有一个MVC2.NET 4.0应用程序,托管在TFS 2008(即将成为TFS 2010)上,它在 web.config 连接到另一台服务器上的数据库。我需要加密这些连接字符串。

    据我所知,我可以利用 aspnet_regiis.exe 加密 web.config配置 文件, 但我必须在部署机器上做 因为加密使用机器名生成加密密钥。

    现在,在我看来这代表了一个问题-每次我将代码部署到dev服务器时,它不会覆盖web.config文件,并且需要重新加密吗?这种手工操作的过程看起来很笨拙。

    1. 我对部署后需要重新加密的理解是否正确?

    2. 如果是的话,有没有办法使这个过程自动化?我不想忘记这一点,也不想找一个不知道流程的新团队成员,让connectionstring向全世界公开。

    1 回复  |  直到 14 年前
        1
  •  0
  •   bdukes Jon Skeet    14 年前

    web.config文件通常不是部署的一部分(尽管Visual Studio 2010支持 configuration file transforms 在web应用程序部署项目中)。我不希望在部署时覆盖web.config(因为web.config是放置特定于该计算机/环境的内容的位置)。

    所以,加密一次,然后不要覆盖它,这是我的建议。

    由于这在您的情况下不可用,所以可以在加密时指定密钥,以便您可以在计算机之间共享加密文件。默认情况下,用于加密的命令使用DPAPI来加密节(该节与计算机绑定),但您也可以使用RSA进行加密。在中的MSDN上提供了更多信息 Specifying a Protected Configuration Provider .