我正在学习如何为我们的C#(3.5)应用程序加密ConnectionString.我阅读了关于保护连接字符串的.Net Framwork Developer Guide(
http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx).但不完全了解内容.
>它说“连接字符串只能在加密字符串的计算机上解密.”我们有一个发布机器,它将构建我们的应用程序,它将生成OurApp.exe.config,然后将其安装到许多产品机器上.是不是我们必须将这个加密过程与我们的应用程序分开并在单独的产品机器上运行?
>我们可以使用“RSAProtectedConfigurationProvider”.它提到我们需要该提供商的加密密钥.何时以及如何提供加密密钥?
谢谢,
解决方法
您只需运行一次加密过程.但是,在生成计算机密钥后,您需要在目标计算机的所有machine.config文件中传播该密钥. machine.config应该位于:
%FRAMEWORKDIR%\%FRAMEWORKVERSION%\CONFIG
How To: Configure MachineKey in ASP.NET 2.0:此链接有一节介绍如何配置配置密钥< machineKey validationKey =“[此处生成的值]”decryptionKey = “自动生成,IsolateApps”validation =“SHA1”decryption =“Auto”/>以及如何在机器之间共享.