2

我正在开发将在Intranet中使用的应用程序。 我正在使用Active Directory的应用程序使用Windows身份验证。 但是,当我从ie中的其他机器访问应用程序时,它不断提示输入用户名和密码。 我已将web.config中的设置添加到Windows身份验证,身份模拟中。 而IIS应用程序的设置仅启用Windows身份验证。匿名身份验证被禁用。 我的观察是,它可以正常工作IIS 6. 但是,当我尝试在IIS 7.5上托管我的应用程序时,它不断提示用户名和密码。 另外它不适用于Google Crome。Windows身份验证会不断提示用户名密码,例如

有什么问题?请帮助...

回答

2

在同一应用程序

你有一个login.aspx的页面,它允许用户登录和使用窗体身份验证使用ASP.NET窗体身份验证和IIS Windows身份验证。但是,您的所有用户在服务器(或Active Directory)上都有Windows帐户。出于某种原因,您希望所有用户都先使用其Windows凭据登录,然后使用其成员身份凭证和表单身份验证登录。您可以通过启用Windows身份验证并禁用IIS中的匿名身份验证来实现这一点,这会导致请求在IIS到达ASP.NET之前被拒绝,从而确保您的用户首先通过Windows身份验证进行身份验证。

这适用于IIS 6.0和经典模式下的IIS 7.0。但是,在集成模式下,Windows和Forms身份验证在单阶段身份验证过程中运行,这使得无法首先使用Windows身份验证进行身份验证,然后使用窗体身份验证进行身份验证。此外,由于为整个应用程序启用了Forms身份验证,因此无法为您的应用程序的一部分而不是另一个应用程序启用它 - 这会出现问题,因为表单身份验证的302重定向挑战与401“WWW身份验证“Windows身份验证使用的挑战。表单身份验证将始终将未经授权的请求转换为302重定向,从而打破Windows身份验证。

欲了解更多详情,请参阅this link.

相关问题