http://www.microsoft.com/china/technet/security/guidance/secmod38.mspx


更新日期: 2004年04月20日
本页内容
Asp.net关于验证资料(microsoft) 目标
Asp.net关于验证资料(microsoft) 适用范围
Asp.net关于验证资料(microsoft) 如何使用本章内容
Asp.net关于验证资料(microsoft) 摘要
Asp.net关于验证资料(microsoft) IIS 匿名身份验证
Asp.net关于验证资料(microsoft) IIS 基本身份验证
Asp.net关于验证资料(microsoft) IIS 摘要式身份验证
Asp.net关于验证资料(microsoft) IIS 集成 Windows

目标

本章的目标是:

了解 ASP.NET 标识

适用范围

本章适用于以下产品和技术:

Windows 2000 Server 2000 SP3

Microsoft .NET Framework SP2

Microsoft SQL Server 2000 SP2

如何使用本章内容

本章是《构建安全的 ASP .NET 应用程序》指南的参考章节。它包含一些补充信息,可以帮助您进一步了解本指南其他章节中所述的解决方案,应在阅读时一并阅读。

摘要

主体对象实现 IPrincipal 接口并表示特定用户(代码代表该用户运行)的安全性上下文。主体对象包括用户的标识(作为包含的 IIdentity 对象)和用户所属的任何角色。

ASP.NET 提供了以下主体和标识对象实现:

WindowsPrincipalWindowsIdentity 对象表示已使用 Windows 身份验证验证了身份的用户。对于这些对象,可以从 Windows 用户所属的 Windows 组集中自动获取角色列表。

GenericPrincipalGenericIdentity 对象表示已使用窗体身份验证或其他自定义身份验证机制验证了身份的用户。对于这些对象,以自定义方式获取角色列表(通常是从数据库中获取的)。

FormsIdentityPassportIdentity 对象分别表示已使用窗体身份验证和 Passport 身份验证验证了身份的用户。

以下各表说明了在 IIS 身份验证设置的范围内,从保存 IPrincipal 和/或 IIdentity 对象的每个变量中获取的结果标识。表中使用了以下缩写词:

HttpContext = HttpContext.Current.User,它返回包含当前 Web 请求的安全信息的 IPrincipal 对象。这是经身份验证的 Web 客户端。

WindowsIdentity = WindowsIdentity.GetCurrent(),它返回当前执行的 Win32 线程的安全性上下文的标识。

Thread = Thread.CurrentPrincipal,它返回当前执行的 .NET 线程(在 Win32 线程之上)的主体。

IIS 匿名身份验证

Web.config 设置 变量位置 结果标识

<identity impersonate="true"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

-
MACHINE\IUSR_MACHINE
-

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

-
MACHINE\ASPNET
-

<identity impersonate="true" />
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
MACHINE\IUSR_MACHINE
用户提供的名称

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
MACHINE\ASPNET
用户提供的名称

IIS 基本身份验证

Web.config 设置 变量位置 结果标识

<identity impersonate="true"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

域\用户名
域\用户名
域\用户名

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

域\用户名
MACHINE\ASPNET
域\用户名

<identity impersonate="true"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
域\用户名
用户提供的名称

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
MACHINE\ASPNET
用户提供的名称

IIS 摘要式身份验证

Web.config 设置 变量位置 结果标识

<identity impersonate="true"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

域\用户名
域\用户名
域\用户名

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

域\用户名
MACHINE\ASPNET
域\用户名

<identity impersonate="true"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
域\用户名
用户提供的名称

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
MACHINE\ASPNET
用户提供的名称

IIS 集成 Windows

Web.config 设置 变量位置 结果标识

<identity impersonate="true"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

域\用户名
域\用户名
域\用户名

<identity impersonate="false"/>
<authentication mode="Windows" />

HttpContext
WindowsIdentity
Thread

域\用户名
MACHINE\ASPNET
域\用户名

<identity impersonate="true"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
域\用户名
用户提供的名称

<identity impersonate="false"/>
<authentication mode="Forms" />

HttpContext
WindowsIdentity
Thread

用户提供的名称
MACHINE\ASPNET
用户提供的名称


相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-25
  • 2021-10-22
  • 2021-08-06
  • 2021-06-19
  • 2022-01-01
  • 2021-11-02
猜你喜欢
  • 2021-09-16
  • 2022-12-23
  • 2022-02-03
  • 2022-12-23
  • 2021-06-09
  • 2021-06-17
  • 2021-12-01
相关资源
相似解决方案