虽然乍一看似乎很简单,但我遇到了一些障碍。
因此,我使用默认加密提供程序提供了对我来说很好的步骤(加密appSettings部分):
加密web.config 中的部分:
- 打开管理员命令外壳(以管理员身份运行!)。命令提示符将在
C:
下面的步骤中假设。
进一步假设应用程序已部署在D:\Apps\myApp
- 将其替换为您在步骤 3 中使用的路径。
cd "C:\Windows\Microsoft.NET\Framework64\v4.0.30319"
, 在 32 位 Windows 系统上使用Framework
而不是Framework64
cd /D "D:\Apps\myApp"
注意:如果驱动器与您当前的驱动器不同,该/D
开关将自动更改驱动器。在这里它将更改路径和驱动器,因此当前目录将在D:\Apps\myApp
之后。
c:aspnet_regiis -pef appConfig .
您应该会看到以下消息:
Microsoft (R) ASP.NET RegIIS 4.0.30319.0 管理实用程序,用于在本地计算机上安装和卸载 ASP.NET。版权所有 (C) 微软公司。版权所有。加密配置部分...成功!
您还可以解密web.config 中的部分:这些步骤相同,但使用选项-pdf
而不是-pef
aspnet_regiis。
也可以加密 web.config 的其他部分,例如,您可以通过以下方式加密连接字符串部分:
aspnet_regiis -pe "connectionStrings" -app "/SampleApplication"
可以在此处找到有关此内容的更多详细信息。
注意:上述加密对您的 Web 应用程序是透明的,即您的 Web 应用程序无法识别设置已加密。
您还可以选择使用非透明加密,例如使用 Microsoft 的 DPAPI 或使用AES以及框架的AES Class。我在 Stackoverflow描述了
如何使用DPAPI完成它。DPAPI 的工作方式非常相似,它使用机器或用户凭证的密钥。通常,非透明加密为您提供更多控制权,例如您可以添加 SALT,或者您可以使用基于用户密码的密钥。如果您想了解有关如何从密码短语生成密钥的更多信息,请查看此处。