IIS Windows身份验证401未经授权

3
我有一个子应用程序,我想使用Windows身份验证。我希望即使在域中的人第一次到达页面时,登录框也会弹出。
当我关闭内核模式身份验证时,登录框会弹出,但在3次登录尝试后失败,显示401未经授权的错误。如果我打开它,则不会要求输入密码,我认为这是因为计算机在服务器域中并且凭据已自动传递。
是否有可能为所有用户显示登录表单,包括域用户?
下面的图片显示了我的服务器配置。

Windows Auth Configs


尝试从提供程序中删除NTLM。 - SANM2009
2个回答

5

Windows身份验证通常由IIS处理。其工作方式如下:

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

所有这些都旨在实现无缝体验。

如果您希望用户每次都被提示输入凭据,则可以执行以下操作之一:

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

如果您使用第二种方法,请确保在您的网站上使用SSL,因为密码将以明文形式发送。


0

您可以使用基本身份验证。它会提示用户输入凭据,一旦输入,就会为您提供无缝的体验。

但是,基本身份验证的缺点是它将密码以明文形式发送到服务器。您可以使用SSL证书加密此信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接