Web.config加密——使用aspnet_regiis
时间:2011-05-28 来源:宽田
系列目录:
      web.config加密与解密(转) (以前转载别人的文章)
  ------------------------------------------------------------------
  aspnet_regiis工具有注册IIS使用的.NET Framework版本、对Web.Config进行加密等功能。这里我们主要使用它进行Web.Config加密。
  我没有对aspnet_regiis进行测试,主要是我更喜欢用写程序的方式加密。
aspnet_regiis位置:
C:\windows\Microsoft.Net\Framework\V20.50727。
用法:
加密connectionStrings区块
aspnet_regiis -pe 'connectionStrings' -app '/appPosition' -prov 'RSAProtectedConfigurationProvider'
解密connectionStrings区块
aspnet_regiis -pd 'connectionStrings' -app '/appPosition'
让加密后的区块使用时不需解密的话,需要授权给NETWORK SERVICE对RSA金钥容器的访问权。代码如下:
aspnet_regiis -pa 'NetFrameworkConfigurationKey' 'NT AUTHORITY\NETWORK SERVICE'说明:RSAProtectedConfigurationProvider提供程序使用的 RSA 密钥容器名为 "NetFrameworkConfigurationKey"
附: MSDN中aspnet_regiss参数说明
选项:
| 
          选项 | 
        
           说明  | 
      
|---|---|
| 
           -c  | 
        
           将 ASP.NET 的客户端脚本(如客户端验证脚本)安装到每个 Internet 信息服务 (IIS) 站点目录的 aspnet_client 子目录中。 只安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本的客户端脚本。  | 
      
| 
           -disable  | 
        
           在 IIS 安全控制台中禁用 ASP.NET。 此选项只能与 -i、-ir 或 -r 选项结合使用。此选项不能在 IIS 6.0 之前的 IIS 版本中使用。  | 
      
| 
           -e  | 
        
           从每个 IIS 站点目录的 aspnet_client 子目录中移除 ASP.NET 的客户端脚本。 只移除与 Aspnet_regiis.exe 关联的 ASP.NET 版本的客户端脚本。  | 
      
| 
           -ea  | 
        
           从每个 IIS 站点目录的 aspnet_client 子目录中移除所有 ASP.NET 版本的客户端脚本。  | 
      
| 
           -enable  | 
        
           在 IIS 安全控制台中启用 ASP.NET。 此选项只能与 -i、-ir 或 -r 选项结合使用。此选项不能在 IIS 6.0 之前或 ASP.NET 2.0 版之前的版本中使用。  | 
      
| 
           -ga user  | 
        
           向指定用户授予 ASP.NET. 使用的 IIS 元数据库和其他目录的访问权限。 此选项不能在 ASP.NET 2.0 之前的版本中使用。  | 
      
| 
           -i  | 
        
           安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本,并更新 IIS 元数据库根目录和根目录下的脚本映射。 只更新使用早期 ASP.NET 版本的应用程序的脚本映射。使用新版本的应用程序不受影响。  | 
      
| 
           -ir  | 
        
           安装与 Aspnet_regiis.exe 关联的 ASP.NET 版本,并仅在 IIS 中注册 ASP.NET。 此选项不更新脚本映射。若要安装 ASP.NET 并更新脚本映射,请使用 -i 选项。  | 
      
| 
           -k path  | 
        
           在指定的应用程序根路径及其子目录中,从所有 ASP.NET 应用程序中移除所有 ASP.NET 版本的脚本映射。  | 
      
| 
           -kn path  | 
        
           仅在指定的应用程序根路径中,从 ASP.NET 应用程序中移除所有 ASP.NET 版本的脚本映射。 此选项不影响指定 path 的子目录中的应用程序。  | 
      
| 
           -lk  | 
        
           列出包含 ASP.NET 脚本映射的所有 IIS 元数据库项的路径和版本。 不显示从父项继承 ASP.NET 脚本映射的项。  | 
      
| 
           -lv  | 
        
           列出计算机上安装的所有 ASP.NET 版本的状态和安装路径。  | 
      
| 
           -norestart  | 
        
           禁止在安装或更新 ASP.NET 脚本映射后重新启动 IIS 辅助进程。 如果将手动重新启动 IIS 辅助进程,则将此选项与 -i 或 -r 选项一起使用。  | 
      
| 
           -r  | 
        
           更新 IIS 元数据库中及其下面的所有脚本映射,使其指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI 版本。 无论当前版本如何,都会更新现有的所有脚本映射,使其指向与 ASP.NET IIS 注册工具关联的 ASP.NET ISAPI 版本。  | 
      
| 
           -s path  | 
        
           
            将  | 
      
| 
           -sn path  | 
        
           将脚本映射(该脚本映射指向与该工具关联的 ASP.NET ISAPI 版本)安装到指定应用程序根路径下的 ASP.NET 应用程序中。更新指定路径中使用早期 ASP.NET ISAPI 版本的所有现有脚本映射。 此选项不影响 path 的子目录中的应用程序。  | 
      
| 
           -u  | 
        
           从计算机中卸载与 ASP.NET IIS 注册工具关联的 ASP.NET 版本。此 ASP.NET ISAPI 版本的现有脚本映射自动重新映射到其余已安装的 ASP.NET ISAPI 的最新版本。  | 
      
| 
           -ua  | 
        
           从计算机中卸载所有 ASP.NET 版本。  | 
      
| 
           -?  | 
        
           显示 ASP.NET IIS 注册工具的命令语法和选项。  | 
      
配置选项
| 
             选项  | 
          
             说明  | 
        
|---|---|
| 
             -config+  | 
          
             允许对计算机上的 ASP.NET 配置进行远程访问。  | 
        
| 
             -config-  | 
          
             禁止对计算机上的 ASP.NET 配置进行远程访问。  | 
        
| 
             -pa container account  | 
          
             为指定用户或组 account 授予访问指定项 container 的权限。此参数采用下面的可选修饰符: 
  | 
        
| 
             -pc container  | 
          
             在指定容器中创建 RSA 公钥/私钥对。此参数采用下面的可选修饰符: 
  | 
        
| 
             -pd section  | 
          
             对配置节进行解密。此参数采用下面的可选参数: 
  | 
        
| 
             -pdf section webApplicationDirectory  | 
          
             对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。  | 
        
| 
             -pe section  | 
          
             对指定的配置节进行加密。此参数采用下面的可选修饰符: 
  | 
        
| 
             -pef section webApplicationDirectory  | 
          
             对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。  | 
        
| 
             -pi container file  | 
          
             将 RSA 公钥/私钥对从指定的 XML file 导入指定的 container。此参数采用下面的可选修饰符: 
  | 
        
| 
             -pr container account  | 
          
             移除指定的用户或组 account 对指定的项 container 的访问权限。此参数采用下面的可选修饰符: 
  | 
        
| 
             -px container file  | 
          
             将 RSA 公钥/私钥对从指定的容器导入指定的 XML 文件。此参数采用下面的可选修饰符: 
  | 
        
| 
             -pz container  | 
          
             删除指定的密钥容器。此参数采用下面的可选修饰符: 
  | 
        










