【问题标题】:windows authentication not working in ie7Windows 身份验证在 ie7 中不起作用
【发布时间】:2011-11-12 07:36:23
【问题描述】:

真的需要这方面的帮助,尝试了很多东西但没有想法。

我有一个托管在内部开发服务器上的网站,可供内部员工访问。

服务器设置是 windows 2008 R2, iis 7.5 sql 2008 express。我正在使用活动目录进行身份验证。

在 Chrome 中加载该网站,并自动记录我识别我的名字。

在 IE7 中查看该站点时,响应为: "401 - 未经授权:由于凭据无效,访问被拒绝。 您无权使用您提供的凭据查看此目录或页面。”

我尝试了以下方法:

  • 在 iis 中仅将 windows 身份验证设置为启用(其余禁用)
  • 将 NTLM 移至提供商列表顶部
  • 将 Web 目录的完全控制权授予 Everyone/IUSR/Network Service/DeafultAppPool ...列表继续。
  • 已检查 ie 设置(已检查启用集成 Windows 身份验证)
  • IE7 中的用户身份验证设置为“仅在内网区域自动登录”。
  • 在 web.config 中设置以下内容:
    • <anonymousIdentification enabled="false" />
    • <authentication mode="Windows" />
    • <identity impersonate="false" />
  • 已执行:cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"

当我在 IE7 中访问 Intranet 时,我确信它不是浏览器设置,因为我已针对 AD 进行身份验证。

怎么了?我该如何解决?

非常感谢

【问题讨论】:

  • 很好奇。在 IE 中,转到工具|Internet 选项|安全(选项卡)并选择 Intranet 区域和自定义级别。滚动到安全设置窗口的底部,首先选择“使用当前用户名和密码自动登录”。保存并查看您是否仍然收到 401。如果这不起作用,请尝试“提示输入用户名和密码”。试试看。还要验证 Intranet 图标是否显示在浏览器的右下角状态中。有时这种行为是由于未在“受信任的站点”选项卡中配置 host.domain。
  • @raklos 这就是解决问题的方法。下载wireshark。捕获 Chrome 和 IIS 之间的网络流量并查看身份验证的工作原理。捕获 IE 和 IIS 之间的网络流量,看看它是如何失败的。

标签: active-directory internet-explorer-7 iis-7.5 windows-authentication


【解决方案1】:

在类似环境中使用其中一个网络应用程序时遇到此类问题。原来,IE 试图使用 Kerberos 进行身份验证,而 Kerberos 在 IIS 身份验证设置中被关闭。 Chrome 在未能使用 Kerberos 后下降到 NTLM,因此在 Chrome 网络应用程序中运行良好。

解决方案相当简单。

1. Open IIS manager
2. Open "Authentification" node
3. Right click on 'Windows Authentification' item.
4. Select "Advanced settings" in context menu.
5. Switch off kernel mode (it's not compartible with Kerberos provider.)
6. Repeat p.1-3.
7. Select "Providers..." in context menu
8. Add Kerberos to enabled providers list
9. Restart IIS

【讨论】:

  • 我不得不重新启动服务器以使其受到影响。感谢您的详细步骤...
【解决方案2】:

我在 Windows 2008 R2 iis 7.5 上模拟 Windows 身份验证时遇到了同样的问题。 我在这里遵循了其他两个解决方案,但没有成功。 但是在应用了这些更改之后,我再次切换回内核模式并且它起作用了。 我不知道它为什么会起作用,但是已经成功地在 2 个单独的虚拟目录上遵循了这个过程。

【讨论】:

    【解决方案3】:

    来自技术网文章,http://technet.microsoft.com/en-us/library/cc754628(v=ws.10).aspx

    Windows 身份验证的默认设置是协商。这 设置意味着客户端可以选择适当的安全性 支持提供者。要强制 NTLM 身份验证,您必须更改 下元素的值 ApplicationHost.config 文件中的元素。

    IE 正在使用 Kerberos,而不是像 Chrome 和 Firefox 那样依赖 NTLM。您必须按照以下步骤在 IIS7.5 中强制执行 NTLM 身份验证:

    1. 选择您的网站。
    2. 双击身份验证。
    3. 选择“Windows 身份验证”(确保已启用)。
    4. 点击右侧栏中的“Providers...”。
    5. 选择 NTLM 并点击“上移”。

    【讨论】:

    • 这应该被标记为答案。伟大的步骤并解决了这个问题。完美无瑕!
    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多