在同一应用程序中使用 ASP.NET Forms 身份验证和 IIS Windows 身份验证
您有一个 login.aspx 页面,它允许您的用户使用 Forms 身份验证登录。但是,您的所有用户在服务器(或 Active Directory)上也有 Windows 帐户。出于某种原因,您希望所有用户首先使用其 Windows 凭据登录,然后使用其成员身份凭据和表单身份验证登录。您可以通过在 IIS 中启用 Windows 身份验证并禁用匿名身份验证来做到这一点,这将导致请求在到达 ASP.NET 之前被 IIS 拒绝,从而确保您的用户首先通过 Windows auth 进行身份验证。
这适用于 IIS 6.0 和经典模式下的 IIS 7.0。但是,在集成模式下,Windows 和 Forms 身份验证都在单阶段身份验证过程中运行,这使得无法先使用 Windows 身份验证进行身份验证,然后再使用 Forms 身份验证进行身份验证。此外,由于为整个应用程序启用了 Forms 身份验证,因此无法为您的应用程序的一部分启用它,而不是为另一个应用程序启用它 - 这会带来一个问题,因为 Forms 身份验证的 302 重定向挑战与 401 “WWW-Authenticate ” Windows 身份验证使用的质询。Forms auth 将始终将未经授权的对应用程序的请求转换为 302 重定向,从而破坏 Windows 身份验证。
有关更多详细信息,请参阅此链接。