阿宽

Nothing is more powerful than habit!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Web.config加密——使用aspnet_regiis

Posted on 2011-05-28 21:17  宽田  阅读(1454)  评论(0编辑  收藏  举报

系列目录:

    Web.config加密——基础知识

    Web.config加密——使用aspnet_regiis

    Web.config加密——使用编程方式方式

    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


脚本映射(该脚本映射指向与 Aspnet_regiis.exe 关联的 ASP.NET ISAPI
版本)安装到指定应用程序根路径及其子目录下的所有 ASP.NET 应用程序中。更新指定的路径中及其下面使用早期 ASP.NET ISAPI
版本的所有现有脚本映射。

-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 的权限。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -csp provider   指定要使用的容器提供程序。

  • -full   指定应该添加完全访问权限而不是默认的只读访问权限。

-pc container

在指定容器中创建 RSA 公钥/私钥对。此参数采用下面的可选修饰符:

  • -size keySize   指定密钥大小。默认值为 1024 字节。

  • -pku   将计算机上的默认密钥容器替换为用户指定的容器。

  • -exp   指定必须可以导出的私钥。

  • -csp provider   指定要使用的容器提供程序。

-pd section

对配置节进行解密。此参数采用下面的可选参数:

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

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

  • -pkm   指定应该对 Machine.config 而非 Web.config 文件进行解密。

-pdf section webApplicationDirectory

对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行解密。

-pe section

对指定的配置节进行加密。此参数采用下面的可选修饰符:

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

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

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

  • -pkm   指定应该对 Machine.config 而非 Web.config 文件进行加密。

-pef section webApplicationDirectory

对指定物理(非虚拟)目录中的 Web.config 文件的指定配置节进行加密。

-pi container file

将 RSA 公钥/私钥对从指定的 XML file 导入指定的 container。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -exp   指定可以导出私钥。

  • -csp provider   指定要使用的容器提供程序。

-pr container account

移除指定的用户或组 account 对指定的项 container 的访问权限。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -csp provider   指定要使用的容器提供程序。

-px container file

将 RSA 公钥/私钥对从指定的容器导入指定的 XML 文件。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。

  • -csp provider   指定要使用的容器提供程序。

-pz container

删除指定的密钥容器。此参数采用下面的可选修饰符:

  • -pku   将默认的计算机容器替换为用户指定的容器。