【问题标题】:Windows Authentication - Chrome vs Internet ExplorerWindows 身份验证 - Chrome 与 Internet Explorer
【发布时间】:2018-01-02 15:47:03
【问题描述】:

我有一个应用程序部署到 IIS 6.1。当我在 Chrome 中输入我的 ASP 应用程序时,会出现弹出窗口,我输入用户名和密码以成功登录我的应用程序。但是当我通过 Internet Explorer 登录时,我无法通过身份验证。什么可能导致这种行为?

【问题讨论】:

  • 您进入登录对话框并输入您的凭据,然后在 IE 中会发生什么?
  • 在几次尝试登录后,即给出了下一个错误:401 - 未经授权:由于凭据无效,访问被拒绝。您无权使用您提供的凭据查看此目录或页面。
  • 我很惊讶它可以在 Chrome 而不是 IE 中工作。对于这种情况(针对 Windows 机器进行身份验证),通常情况相反。问题是否可能仅仅是浏览器对您正在使用的帐户进行身份验证做出不同的假设?如果您还没有尝试过,可以尝试使用“域/用户名”作为您的用户名。

标签: asp.net


【解决方案1】:

我不完全确定您究竟在追求什么行为(您在评论中声明您已启用匿名访问,但您似乎对 Chrome 向用户显示质询响应对话框感到满意)。

问题很可能是 IE 将您的桌面凭据传递给该站点,但它们被拒绝了,而 Firefox/Chrome 则没有这样做,因此出现了质询响应对话框。 p>

选项有:

  1. 将站点从“本地 Intranet”区域移到(例如)“受信任的站点”区域:
    1. (适用于 IE8 及以下)工具 | Internet 选项 (IE9) 单击 Cog 图标 |互联网选项
    2. 切换到“安全”标签。
    3. 点击“受信任的站点”,然后按“站点”按钮。
    4. 将域添加到列表中 - 您可能需要清除“需要对该区域中的所有站点进行服务器验证 (https:)”并确定。
    5. 返回安全选项卡,单击“自定义级别...”按钮,滚动到设置列表的末尾,并确保用户身份验证 |登录设置为“仅在内网区域自动登录”。
  2. 更改所有 Intranet 站点以提示输入凭据(但我建议不要这样做,因为它会导致您痛苦):
    1. 按照上述步骤 1.1 和 1.2 打开 Internet 选项对话框。
    2. 切换到“安全”选项卡,然后选择“本地 Intranet”。
    3. 单击“自定义级别...”按钮,滚动到设置列表的末尾,并确保用户身份验证 |登录设置为“提示输入用户名和密码”。

【讨论】:

    【解决方案2】:

    由于链接by Xhalent的文章现在显示404,我翻遍了Archive.org,找到了a version back from 2009

    我不知道这个 Archive.org 版本能稳定多久,所以我在这里引用这篇文章:


    在 Firefox 和 Internet Explorer 中启用 NTLM 身份验证

    本技巧对于采用 Microsoft 技术(Active Directory、IIS 和 ASP.NET)并需要为其内部 Web 应用程序提供最小入侵身份验证的组织非常有用。在这个问题上我被难住了很长时间。场景如下:

    我所有的 ASP.NET 应用程序 - 在这一点上 - 都在我工作的组织内部。我们是一家严格意义上的 Microsoft 商店,因此,我总是尽可能地利用 Active Directory。好吧,从我(开发人员)的角度来看,这很棒,因为这意味着我不必构建和维护登录系统。然而,我最近开始收到来自全国各地用户的反馈,他们说他们在访问应用程序时遇到了登录屏幕的挑战。这没关系,因为他们仍然可以使用他们的 Active Directory 帐户,但有时他们不得不将域附加到他们名字的开头,这一切都变得有点痛苦。

    我们是一个多元化的组织,因为我们有许多不同的网络配置。我们的一些用户使用高质量的 T1 连接,而其他用户仍然处于间歇性 - 充其量 - 连接。由于这种差异,我最初将登录问题归咎于不同的网络配置(防火墙、与域控制器的距离等),但经过更多研究后,我发现问题实际上与浏览器有关。

    顺便说一句,Internet Explorer 设置也可以通过组策略实现(感谢 Chris、James 和 Marilyn 帮助我解决了这个问题)。在注册表中查看:

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains

    因此,您需要采取以下步骤在 Internet Explorer(6 和 7)和 Firefox(2)中启用 NTLM 直通身份验证:

    Internet Explorer

    注意:这些说明适用于 IE 6 和 IE 7,尽管下面的屏幕截图可能略有不同。

    注 2:由于某种原因,添加到 本地 Intranet 区域的某些条目似乎是持久的。您将在界面中删除它们,关闭所有窗口,然后返回它们会重新出现。我发现永久删除它们的唯一方法是手动删除位于本节上方引用位置的注册表项。

    1. 在 Internet Explorer 中,单击 工具 并选择 Internet 选项

    2. 接下来,单击Internet 选项 窗口顶部的安全 选项卡。

    3. 显示安全选项卡的内容后,突出显示本地内部网并单击站点按钮

    4. 在弹出的本地内网对话框中,确保最后三个框被选中,然后点击高级按钮。

    5. 在下一个对话框中,在 将此网站添加到区域 文本框中键入以下内容:“http://www.example.org”(不带引号)并单击 添加 按钮。

    注意:如果您想为域中的所有网站启用 Active Directory 直通身份验证,请在将此网站添加到区域中键入以下内容> 文本框:“http://*.example.org”(不带引号)。

    Mozilla 火狐

    注意:这些说明已经在 Firefox 2.0.0.1 上测试过。

    1. 在 Firefox 浏览器窗口的地址栏中,键入以下内容:“about:config”(不带引号)并按 Enter。

    2. 在显示的配置页面中,向下滚动到以下条目:“network.automatic-ntlm-auth.trusted-uris”并双击它。

    3. 在弹出的输入字符串值中,在文本框中输入“http://www.example.org”(不带引号),然后点击确定。 p>

    注意:如果您想启用 Active Directory 直通 对域上的所有站点进行身份验证,键入以下内容 进入文本框:“.example.org_”(不带引号)。

    【讨论】:

      【解决方案3】:

      您可能需要确保已部署的站点位于 IE 的本地 Intranet 区域中。以下帖子discusses how to configure NTLM for IE and Firefox.

      【讨论】:

      • 据我记得,IE 只会通过本地 Intranet 区域的凭据,但如果打开 NTLM 身份验证,无论该站点是否受信任,IE 仍应提示并通过。另一件需要注意的是,本地的 FQDN 不会被 IE 识别为本地,必须手动添加到列表中(例如,“site.domain.local”不会自动视为本地 Intranet)
      • 好伤心,链接坏了。
      • @GuilhermedeJesusSantos 我在 Archive.org 上找到了 a version
      【解决方案4】:

      您是否启用了匿名访问(您似乎没有启用),您是否启用了集成安全性,以及您为集成安全性选择了哪种身份验证类型。您是否在 IE 中启用了集成安全性。

      【讨论】:

      • 我在 iis 上启用了匿名访问,我在哪里启用了集成安全性?为什么在其他浏览器中一切正常,除了我没有更改浏览器的任何设置
      • 可能影响它的另一件事是文件夹的安全性,如果您使用集成安全性和匿名性,FF 和其他人将以 IUSER_ (或现在的任何帐户)的身份出现,而 IE 用户将通过他们的 Windows 登录进行身份验证。检查它们是否由于 Windows 中的文件夹安全性而受到限制。
      猜你喜欢
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 2012-04-06
      • 2012-03-15
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多