在 .NET 4.0 网站中,哪些 web.config 部分可以加密?我读到并非所有部分都可以加密,但我找不到任何详细说明哪些部分可以加密的信息。
3 回答
从MSDN docs中可以清楚地看出,只要该部分不是这些部分之一,就可以使用带有选项和要加密的配置元素的名称的工具来加密和解密web.config
部分:Aspnet_regiis.exe
–pe
以下是无法使用受保护配置加密的配置部分的列表:processModel、runtime、mscorlib、startup、system.runtime.remoting、configProtectedData、satelliteassemblies、cryptographySettings、cryptoNameMapping 和 cryptoClasses。建议您使用其他加密敏感信息的方法,例如 ASP.NET 设置注册表控制台应用程序 (Aspnet_setreg.exe) 工具,以保护这些配置部分中的敏感信息。
以下是加密所有其他可能部分所需的内容:
诸如文件之类的配置文件Web.config
通常用于保存敏感信息,包括用户名、密码、数据库连接字符串和加密密钥。这就是为什么我们应该始终以加密形式保存这些敏感部分。
您可以加密的部分:
<appSettings>
<connectionStrings>
<identity>
<sessionState>
您无法加密的部分:
<processModel>
<runtime>
<mscorlib>
<startup>
<system.runtime.remoting>
<configProtectedData>
<satelliteassemblies>
<cryptographySettings>
<cryptoNameMapping>
请记住:加密和解密数据会产生性能开销。要将此开销降至最低,请仅加密配置文件中存储敏感数据的部分。
加密
转到命令提示符 C:\Windows\Microsoft.NET\Framework\v4.0.30319 中的以下目录>
- 加密连接字符串 Web 配置部分的命令并加密 ShopAPI IIS 应用程序 web.config 文件。
aspnet_regiis -pe "connectionStrings" -app "/ShopAPI"
aspnet_regiis -pd "connectionStrings" -app "/ShopAPI"