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="" />
元素信息
配置节处理程序 |
|
配置成员 |
|
可配置的位置 |
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 |
请参见
任务
How to: Lock ASP.NET Configuration Settings
参考
概念
ASP.NET Configuration Overview
ASP.NET Server Controls and Browser Capabilities