2

我正在开发一个将在 Intranet 中使用的应用程序。我正在对带有 Active Directory 的应用程序使用 Windows 身份验证。但是当我从ie中的其他机器访问应用程序时,它会不断提示输入用户名和密码。我在 web.config 中添加了用于 Windows 身份验证、身份模拟的设置。并且启用了仅应用程序 Windows 身份验证的 IIS 设置。匿名身份验证被禁用。我的观察是它适用于 IIS 6。但是当我尝试在 IIS 7.5 上托管我的应用程序时,它会不断提示用户名和密码。它也不适用于 Google Crome。

可能是什么问题???请帮忙...

4

1 回答 1

2

在同一应用程序中使用 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 身份验证。

有关更多详细信息,请参阅此链接。

于 2013-03-25T05:11:15.870 回答