【问题标题】:IIS Windows Authentication 401 UnAuthorizedIIS Windows 身份验证 401 未经授权
【发布时间】:2018-07-09 08:36:14
【问题描述】:

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

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

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

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

【问题讨论】:

  • 尝试从提供商中删除 NTLM。

标签: asp.net authentication iis windows-authentication


【解决方案1】:

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

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

这一切都是为了无缝而设计的。

如果您希望始终提示用户输入凭据,那么:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-23
      • 2013-08-09
      • 2011-11-03
      • 2013-02-06
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      相关资源
      最近更新 更多