http://msdn.microsoft.com/zh-cn/library/53tyfkaw(VS.80).aspx
- 情景1:使用缺省的密钥容器(NetFrameworkConfigurationKey)加密 Web.config 文件的 ConnectionStrings节
aspnet_regiis -pe "connectionStrings" -app "/WebApp"
注意:要用站点的虚拟目录路径替换/WebApp
。 - 解密使用缺省的密钥容器(NetFrameworkConfigurationKey)加密的 Web.config 文件的 ConnectionStrings节
aspnet_regiis -pd "connectionStrings" -app "/WebApp"
- 确定 ASP.NET 应用程序的标识
在站点根目录新建一个页面,保存为 Identity.aspx,内容如下<%在浏览器中打开该文件,将显示该站点的 ASP.NET 应用程序的标识。
Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
%> - 授予 ASP.NET 应用程序标识对缺省 RSA 密钥容器的访问权限
aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
注意:要用 Identity.aspx 中显示的 ASP.NET 应用程序标识替换NT AUTHORITY\NETWORK SERVICE
。 - 删除 ASP.NET 应用程序标识对缺省 RSA 密钥容器的访问权限
aspnet_regiis -pr "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE"
- 情景2:创建自定义的密钥容器,例如:MyKeys
aspnet_regiis -pc "MyKeys" -exp
- 指定“受保护配置”提供程序的实例,在 Web.config 文件中添加 <configProtectedData> 节,其中包括名为 "MyProvider" 的 RsaProtectedConfigurationProvider 类的实例,这个类使用名为 MyKeys 的计算机级别 RSA 密钥容器
<configuration>
<configProtectedData>
<providers>
<add name="MyProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
keyContainerName="MyKeys" useMachineContainer="true" />
</providers>
</configProtectedData>
<connectionStrings>
<add name="MsPetShop" connectionString="Server=(local);Initial Catalog=MsPetShop;User Id=DbUser;Password=pass@word1" />
</connectionStrings>
</configuration> - 使用自定义的密钥提供程序(MyProvider)加密 Web.config 文件的 ConnectionString节
aspnet_regiis -pe "connectionStrings" -app "/WebApp" -prov "MyProvider"
- 解密使用自定义的密钥提供程序(MyProvider)加密 Web.config 文件的 ConnectionString节
aspnet_regiis -pd "connectionStrings" -app "/WebApp"
提示:解密的时候不需要-prov "MyProvider"
参数,但服务器应该已经导入自定义的 MyKeys 密钥容器,否则无法解密。参考下面的导入方法。 - 导出自定义 MyKeys 密钥容器,以便在另一台服务器导入
aspnet_regiis -px "MyKeys" "c:\keys.xml" -pri
- 在另一台服务器导入自定义 MyKeys 密钥容器
aspnet_regiis -pi "MyKeys" "c:\keys.xml"
警告:为防止非授权用户对 Web.config 文件进行解密,不应该将此密钥容器文件长期存放在 Web站点服务器!导入完成后应该将此 xml 文件存放到另一台计算机作为备份。 - 授予 ASP.NET 应用程序标识对自定义 MyKeys 密钥容器的访问权限
aspnet_regiis -pa "MyKeys" "NT AUTHORITY\NETWORK SERVICE"
注意:要用 Identity.aspx 中显示的 ASP.NET 应用程序标识替换NT AUTHORITY\NETWORK SERVICE
。 - 删除 ASP.NET 应用程序标识对自定义 MyKeys 密钥容器的访问权限
aspnet_regiis -pr "MyKeys" "NT AUTHORITY\NETWORK SERVICE"
- 情景3:删除自定义的 MyKeys 密钥容器
aspnet_regiis -pz "MyKeys"
如果要加密system.net/mailSettings/smtp
aspnet_iis pef "system.net/mailSetting/smtp" "d:\membership"