IIS Windows 身份验证 401 未经授权

bmv*_*mvr 3 asp.net authentication iis windows-authentication

我有一个想要使用 Windows 身份验证的子应用程序。我希望当用户第一次到达该页面时,即使在域中也会弹出登录框。

当我关闭内核模式身份验证时,会弹出登录框,但在 3 次登录尝试后失败,并显示错误 401 未授权。如果我打开此功能,它甚至不会要求输入密码,我相信这是由于计算机位于服务器域中并且凭据会自动传递。

是否有可能为所有用户(包括域用户)显示登录表单?

下图中是我的服务器配置。

Windows 身份验证配置

Gab*_*uci 5

Windows 身份验证通常由 IIS 处理。这是它的工作原理:

  1. 客户端请求页面。
  2. IIS 返回 HTTP 401 响应,其标头表明它接受 Windows 身份验证。
  3. 客户端的浏览器会自动重新发送带有用户凭据的请求(只要该站点是可信的)。
  4. IIS 验证用户并将凭据传递给应用程序。

这一切都被设计为无缝的。

如果您希望始终提示用户输入凭据,则可以:

  1. 确保您的站点不受信任(不在“Internet 选项受信任站点”或“Intranet 站点”中)。但你可能无法做到这一点。
  2. 不要使用 Windows 身份验证。使用表单身份验证并创建一个登录页面,用户可以在其中输入其凭据。但这意味着您必须在代码中自行验证 Windows 或 Active Directory 的凭据。

如果您使用#2,那么还要确保在您的网站上使用 SSL,因为密码将以纯文本形式发送。