identity 元素(ASP.NET 设置架构)

配置 Web 应用程序的标识。 此元素可以在配置文件层次结构中的任何级别进行声明。

注意注意

本主题中的示例语法包含一个密码,用以演示语法的工作原理。在您的应用程序中,建议您使用安全密码策略。

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

特性和元素

以下几节描述了属性、子元素和父元素。

特性

特性

说明

Impersonate

必选特性。

指定是否对每一个请求使用客户端模拟

此特性可以为下列可能值之一。

值说明
false 指定不使用客户端模拟。
true 指定使用客户端模拟。

Password

可选特性。

如果 impersonate 特性为 true,则指定要使用的密码。

有关在注册表中存储加密的辅助进程凭据的信息,请参见 userName 特性。

userName

可选特性。

如果 impersonate 特性为 true,则指定要使用的用户名。

此特性和 password 特性以明文形式存储在配置文件中。 虽然 Microsoft Internet 信息服务 (IIS) 不传输 .config 文件来响应用户代理请求,但是可以通过其他途径读取 .config 文件。 例如,通过在包含服务器的域上具有适当凭据的已经过身份验证的用户。 由于安全原因,identity 特性支持在注册表中存储加密的 userName 和 password 特性。 凭据必须是 REG_BINARY 格式,并用 Microsoft Windows 2000 和 Windows XP 数据保护 API (DPAPI) 加密函数加密。

有关更多信息,请参见本主题后面的“备注”和“示例”。

子元素

无。

父元素

元素

说明

configuration

指定公共语言运行时和 .NET Framework 应用程序所使用的每个配置文件中的根元素。

system.web

为 ASP.NET 配置节指定根元素。

备注

要加密用户名和密码并将它们存储在注册表中,请按如下方式设置 userName 和 password 特性。

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 调用的输出。 可以用 Aspnet_setreg.exe 来创建加密凭据,并将它们存储在注册表中。该程序使用 CryptProtectData 来完成加密。 若要下载 Aspnet_setreg.exe 以及 Microsoft Visual C++ 源代码和文档,请转到 ASP.NET 网站并搜索 aspnet_setreg。

应该对存储加密凭据的密钥的访问权限进行配置,以便仅向 Administrators 和 SYSTEM 提供访问权。 由于密钥会被作为 SYSTEM 运行的 ASP.NET 进程读取,因此应设置以下权限:

  • Administrators:F

  • SYSTEM:F

  • CREATOR OWNER:F

  • ProcessAccount:R

这可以提供两道保护数据的防线,如下所示:

  • ACL 权限要求访问数据的身份是 Administrator。

  • 攻击者必须在服务器上运行代码 (CryptUnprotectData API) 才能恢复帐户的凭据。

默认配置

下面的默认 identity 元素不是在 Machine.config 文件或根 Web.config 文件中显式配置的。 而是由应用程序返回的默认配置。

<identity impersonate="false" userName="" password="" />

元素信息

配置节处理程序

System.Web.Configuration.IdentitySection

配置成员

SystemWebSectionGroup.Identity

可配置的位置

Machine.config

根级别的 Web.config

应用程序级别的 Web.config

虚拟或物理目录级别的 Web.config

要求

Microsoft Internet 信息服务 (IIS) 5.0、5.1 或 6.0

.NET Framework 版本 1.0、1.1 或 2.0

Microsoft Visual Studio 2003 或 Visual Studio 2005

请参见

任务

如何:锁定 ASP.NET 配置设置

参考

system.web 元素(ASP.NET 设置架构)

<configuration> 元素

System.Configuration

System.Web.Configuration

概念

ASP.NET 配置概述

ASP.NET Web 服务器控件和浏览器功能

保证 ASP.NET 配置的安全

ASP.NET 配置方案

其他资源

ASP.NET 配置文件

ASP.NET 配置设置

常规配置设置 (ASP.NET)

ASP.NET 配置 API