ASP.NET IIS 注册工具 (Aspnet_regiis.exe)官方文档:http://msdn.microsoft.com/zh-cn/library/k6h9cz8h(VS.80).aspx
配置文件webform下是web.config,winform下是app.config,如果要加密app.config,先把它改名为:web.config,加密后再重新改回原名就可以了
打开SDK命令提示执行以下命令:(开始-->所有程序-->Microsoft .NET Framework SDK v2.0-->SDK命令提示 )
加密:aspnet_regiis -pef "配置节" "目录"
解密:aspnet_regiis -pdf "配置节" "目录"
如:aspnet_regiis -pef "appSettings" "C:/Inetpub/wwwroot/hr512"
加密C:/Inetpub/wwwroot/hr512/web.config中设置的appSettings节点中的内容
读取节点值和未加密前相同,.net会自动解密
如果出现以下错误信息:
未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误消息为: 打不开 RSA 密钥容器。
解决方法:
在SDK命令下运行:aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY/NETWORK SERVICE"
================================================================================
如果想对web.config的数据库连接字符串进行加密的话,这里提供了两个方法:
方法一
使用“DataProtectionConfigurationProvider”形式加密。
创建test.aspx文件,代码如下:
总结:此方法很方便,并且很简单,但安全性没有密钥加密高。
方法二
使用“RSAProtectedConfigurationProvider”形式来加密
test.aspx程序文件基本如上,
把section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");
改成section.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider");
但这个时候你访问网站的时候很有可能会出现
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误信息为: 打不开 RSA 密钥容器。
这样的错误,解决方法是:
进dos运行:aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY/NETWORK SERVICE"
如果运行出错,需要把目录 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727 放入环境变量path中。
此时就可以成功访问网站了。
同样可以通过命令行来实现“RSAProtectedConfigurationProvider”加密。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
您可能会出现的问题:
一:分析器错误信息: 未能使用提供程序“DataProtectionConfigurationProvider”进行解密。提供程序返回错误信息为: 该项不适于在指定状态下使用。
二:未能使用提供程序“RsaProtectedConfigurationProvider”进行解密。提供程序返回错误消息为: 打不开 RSA 密钥容器。
解决办法:(请耐心看完,你一定会找到问题所在的。)