现在的位置: 首页 > 综合 > 正文

加密和解密配置节

2013年05月03日 ⁄ 综合 ⁄ 共 1679字 ⁄ 字号 评论关闭

可以使用 ASP.NET IIS 注册工具 (Aspnet_regiis.exe) 加密或解密 Web 配置文件的各节。在处理 Web.config 文件时,ASP.NET 将自动解密已加密的配置元素。

Note注意

Aspnet_regiis.exe 工具位于 %windows%/Microsoft.NET/Framework/versionNumber 文件夹中。

也可以使用 System.Configuration 命名空间中的受保护配置类来加密和解密 Web 配置文件的各节、可执行文件 (.exe) 的配置文件的各节或者计算机级和应用程序级配置文件的各节。有关更多信息,请参见 SectionInformation 类的 ProtectSection 方法。有关引用 Web.config 文件的某一节的信息,请参见 WebConfigurationManager 类。有关引用 Web.config 文件以外其他文件的配置节的信息,请参见 ConfigurationManager 类。

加密 Web 配置节

要加密配置文件的内容,应将 Aspnet_regiis.exe 工具与 –pe 选项以及要加密的配置元素的名称一起使用。

使用 –app 选项可标识将加密其 Web.config 文件的应用程序,使用 -site 选项可标识该应用程序所属的网站。网站是使用 Internet 信息服务 (IIS) 元数据库中的站点号标识的。可以从 ServerVariables 集合中的 INSTANCE_META_PATH 服务器变量中检索站点号。例如,安装 IIS 时,会创建名为“默认网站”的网站作为站点 1。在该站点提供的页中,INSTANCE_META_PATH 服务器变量返回“/LM/W3SVC/1”。如果未指定 -site 选项,将使用站点 1。

使用 –prov 选项可标识将执行加密和解密的 ProtectedConfigurationProvider 的名称。如果未使用 -prov 选项指定提供程序,将使用配置为 defaultProvider 的提供程序。

Note注意

如果您使用的是指定自定义密钥容器的 RsaProtectedConfigurationProvider 实例,则必须在运行 Aspnet_regiis.exe 工具前创建密钥容器。有关更多信息,请参见导入和导出受保护的配置 RSA 密钥容器

下面的命令加密应用程序 SampleApplication 的 Web.config 文件中的 connectionStrings 元素。由于不包含 -site 选项,因此假定该应用程序来自网站 1(IIS 中最常用的默认网站)。加密是使用计算机配置中指定的 RsaProtectedConfigurationProvider 执行的。

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

在请求应用程序中的页或其他 ASP.NET 资源时,ASP.NET 会对受保护配置节调用提供程序,以解密信息供 ASP.NET 和应用程序代码使用。

Note注意

要解密和加密 Web.config 文件的某一节,ASP.NET 进程必须具有读取适当加密密钥信息的权限。有关更多信息,请参见导入和导出受保护的配置 RSA 密钥容器

解密 Web 配置节

要解密已加密的配置文件内容,应将 Aspnet_regiis.exe 工具与 -pd 开关以及要解密的配置元素的名称一起使用。使用 –app-site 开关可标识将解密其 Web.config 文件的应用程序。无需指定 –prov 开关来标识 ProtectedConfigurationProvider 的名称,因为该信息是从受保护配置节的 configProtectionProvider 属性中读取的。

下面的命令解密 ASP.NET 应用程序 SampleApplication 的 Web.config 文件中的 connectionStrings 元素:

aspnet_regiis -pd "connectionStrings" -app "/SampleApplication"

 

抱歉!评论已关闭.