在 Windows 命令行下运行带有下列选项的 ASP.NET IIS 注册工具 (aspnet_regiis.exe): -pe 选项,向它传递字符串“connectionStrings”以加密 connectionStrings 元素。 -app 选项,向它传递应用程序的名称。 aspnet_regiis.exe 工具位于 %systemroot%\Microsoft.NET\Framework\versionNumber 文件夹中。 下面的示例演示如何对名为 SampleApplication 的应用程序的 Web.config 文件的 connectionStrings 节进行加密: 复制代码 aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" 使该命令提示符处于打开状态以供后面的步骤使用。 通过检索当前的 WindowsIdentity 名称来确定 ASP.NET 运行所使用的用户帐户或标识。 下面的示例演示一种用来确定 WindowsIdentity 名称的方法: Visual Basic 复制代码 <%@ Page Language="VB" %> <% Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name) %> C# 复制代码 <%@ Page Language="C#" %> <% Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Name); %> 注意 默认情况下,在 Windows Server 2003 上,由于 Web.config 文件中禁用了对 ASP.NET 应用程序的模拟,应用程序运行所使用的标识是 NETWORK SERVICE 帐户。在其他版本的 Windows 上,ASP.NET 运行在本地 ASPNET 帐户下。 ASP.NET 运行所使用的用户帐户或标识必须对用来加密和解密 Web.config 文件各节的加密密钥具有读取权限。此过程假定对网站配置了在 Machine.config 文件中指定的名为“RsaProtectedConfigurationProvider”的默认 RsaProtectedConfigurationProvider。默认 RsaProtectedConfigurationProvider 使用名为“NetFrameworkConfigurationKey”的 RSA 密钥容器。 在命令提示符下,运行带有下列选项的 aspnet_regiis.exe 工具: -pa 选项,向它传递默认 RsaProtectedConfigurationProvider 的 RSA 密钥容器的名称。 在前面的步骤中确定的 ASP.Net 应用程序的标识。 下面的示例演示如何授予 NETWORK SERVICE 帐户对计算机级的“NetFrameworkConfigurationKey”RSA 密钥容器的访问权限: 复制代码 aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SERVICE" 若要对加密的 Web.config 文件内容进行解密,请运行带有 -pd 选项的 aspnet_regiis.exe 工具。除了不指定受保护配置提供程序外,该语法与使用 -pe 选项加密 Web.config 文件内容的语法相同。相应的提供程序是在受保护节的 configProtectionProvider 属性中标识的。 下面的示例演示如何对 ASP.NET 应用程序 SampleApplication 的 connectionStrings 元素进行解密。 复制代码 aspnet_regiis -pd "connectionStrings" -app "/SampleApplication

posted on 2007-09-28 21:03  gerdy  阅读(331)  评论(0编辑  收藏  举报