元素

来源:互联网 发布:opencms mysql 编辑:程序博客网 时间:2024/04/19 08:17
 

<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 完成加密。若要同 Visual C++ 源代码和文档一起下载 Aspnet_setreg.exe,请访问 Web 站点 www.asp.net 并搜索“aspnet_setreg”。

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

Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount:R

这可以提供两道保护数据的防线:

  • ACL 权限要求访问数据的身份是 Administrator。
  • 攻击者必须在服务器上运行代码 (CryptUnprotectData) 才能恢复帐户的凭据。

示例

以下示例将客户端标识模拟设置为 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>

要求

包含于:<system.web>

Web 平台:IIS 5.0、IIS 5.1、IIS 6.0

配置文件:Machine.config、Web.config

配置节处理程序:System.Web.Configuration.IdentityConfigHandler

原创粉丝点击