<identity> 元素

用于控制 Web 应用程序的应用程序标识。该元素可在任何级别(计算机、站点、应用程序、子目录或页)进行声明。

配置结构的示例:

<configuration>
   <system.web>
      <identity>

<identity impersonate="true|false"
          userName="domain\username"
          password="password"/>

必需的属性

属性 选项 描述
impersonate     指定是否对每个请求使用客户端模拟
    true 指定使用客户端模拟。
    false 指定不使用客户端模拟。

可选的属性

属性 描述
userName 指定当 impersonate 设置为 true 时使用的用户名。

userNamepassword 以明文形式存储在配置文件中。尽管 IIS 将不会为响应用户代理请求而传输 .config 文件,但是却可通过其他方法读取配置文件,例如,通过在包含服务器的域中拥有适当凭据的、已通过身份验证的用户。为了维护安全性,标识部分支持在注册表中存储加密的 userNamepassword 属性。凭据必须采用通过 Windows 2000 和 Windows XP 数据保护 API (DPAPI) 加密功能加密的 REG_BINARY 格式。详细信息,请参阅下面的“注释”和“示例”部分。

password 指定当 impersonate 设置为 true 时使用的密码。有关在注册表中存储加密的工作进程凭据的信息,请参阅 userName

注释

将用户名和密码存储到注册表中

要加密用户名和密码并将其存储在注册表中,请按如下方式设置 userNamepassword

userName="registry:HKLM\Software\AspNetProcess,Name"

password="registry:HKLM\Software\AspNetProcess,Pwd"

关键字 registry 后面、逗号前面的字符串部分表示 ASP.NET 打开的注册表项的名称。逗号后面的部分包含一个字符串值名,ASP.NET 将从中读取凭据。逗号是必需的,而且凭据必须存储在 HKLM 配置单元中。如果配置格式不正确,ASP.NET 将不会启动工作进程,随后将出现当前帐户创建失败的代码路径。

凭据必须采用 REG_BINARY 格式,其中包含对 Windows API 函数 CryptProtectData 调用的输出。您可以使用 ASP.NET 设置注册表控制台应用程序 (Aspnet_setreg.exe) 创建加密凭据并将其存储在注册表中,该应用程序使用 CryptProtectData 完成加密。要下载 Aspnet_setreg.exe 以及 Visual C++ 源代码和帮助,请访问 www.asp.net 网站并搜索 aspnet_setreg

您应该对存储加密凭据的注册表项配置访问权限,以便只对 Administrators 和 SYSTEM 提供访问权限。因为该注册表项将由作为 SYSTEM 运行的 ASP.NET 进程读取,您应该设置下列权限:

Administrators:F

SYSTEM:F

CREATOR OWNER:F

ProcessAccount:R

这将提供两道防线来保护数据。

示例

下例将客户端标识模拟设置为 true

<configuration>
   <system.web>
      <identity impersonate="true"/>
   </system.web>
</configuration>

下例指定了加密的用户名和密码将存储在注册表中用户定义的项 AspNetIdentity 下面。

<configuration>
   <system.web>
      <identity> 
         userName="registry:HKLM\Software\AspNetIdentity,Name"
         password="registry:HKLM\Software\AspNetIdentity,Pwd"
      </identity>
   </system.web>
</configuration>

要求



相关主题


© 1997-2003 Microsoft Corporation。保留所有权利