在ASP.NET C#Web.config中保护敏感信息

时间:2018-08-27 07:25:48

标签: iis sharepoint web-config remote-desktop

我当前的web.config中有validationKeydecrytionKey之类的信息已打开,供在我的开发环境中查看。

我想隐藏敏感信息。

更改任何这些设置是否可以使其免受曝光?

这些是我当前的设置:

enter image description here

1 个答案:

答案 0 :(得分:1)

我知道您想加密Web配置文件并隐藏敏感信息。

ASP.NET 2.0中有一项新的安全功能。 Web.config文件中的任何配置节都可以加密。可以通过手动运行工具aspnet_regiis或进行编程来完成。如果您可以直接访问Web服务器,则可以通过运行以下命令行来做到这一点:

cd  %windows%\Microsoft.NET\Framework\versionNumber  

aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" –prov RsaProtectedConfigurationProvider 

-pd section 

解密配置部分。此参数采用以下可选参数:

·-app virtualPath指定应在包含路径的级别解密该级别。

·-location subPath指定要解密的子目录。

·-pkm指定应该解密Machine.config而不是Web.config文件。

-pdf部分webApplicationDirectory 在指定的物理(非虚拟)目录中解密Web.config文件的指定配置部分。

-pe部分 加密指定的配置部分。此参数采用以下可选修饰符:

•-prov provider指定要使用的加密提供程序。

·-app virtualPath指定应在包含路径级别进行加密。

·-location subPath指定要加密的子目录。

·-pkm指定应该对Machine.config而不是Web.config文件进行加密。

-pef部分webApplicationDirectory 在指定的物理(非虚拟)目录中加密Web.config文件的指定配置部分。

如果您使用的是无法访问物理服务器的虚拟主机等,您仍然可以通过编程方式对连接字符串进行加密。

Configuration config =Configuration.GetWebConfiguration(Request.ApplicationPath); 
ConfigurationSection section =config.Sections["connectionStrings"]; 
section.SectionInformation.ProtectSection("RsaProtectedConfigurationProvider");; 
config.Update (); 

使用受保护的配置加密连接字符串值的配置文件现在不会以明文形式显示连接字符串,而是以加密形式存储它们,如以下示例所示:

 Protected configuration

您可以参考我要查找的相关文档。 Protecting Connection Strings and Other Configuration Information (C#)

希望有帮助!