12

真的需要这方面的帮助,并尝试了很多东西,并用尽了想法。Windows身份验证在ie7中不起作用

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

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

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

在IE7浏览该网站的回应是: “401 - 未经授权:访问被拒绝由于凭据无效 您没有权限使用您提供的凭据查看该目录或页面”

我曾尝试以下:

    仅在Windows身份验证设置为启用IIS
  • (其余禁用)
  • 感动NTLM的供应商列表的顶部
  • 给予完全控制web目录给所有人/ IUSR /网络服务/ DeafultAppPool ...列表继续。
  • 检查即设置(启用集成Windows身份验证被选中)
  • IE7中的用户身份验证设置为“仅自动登录到Intranet区域”。
  • 设置web.config中的以下内容:
    • <anonymousIdentification enabled="false" />
    • <authentication mode="Windows" />
    • <identity impersonate="false" />
  • 伏法:cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"

IM确信它不是一个浏览器设置作为即时通讯反对认证AD当我访问IE7中的内联网时。

有什么不对?我该如何解决它?

非常感谢

+0

好奇。在IE中,转至工具| Internet选项|安全性(选项卡),然后选择Intranet Zone和Custom Level。滚动到安全设置窗口的底部,首先选择“使用当前用户名和密码自动登录”。保存并看看你是否仍然得到401.如果这不起作用,然后尝试“提示输入用户名和密码”。试试看。同时验证Intranet图标是否显示在浏览器的右下角状态。有时候,这种行为是由于未在“受信任的站点”选项卡中配置host.domain导致的。 – JimSTAT

+0

@raklos这是如何解决问题的方法。下载wireshark。捕获Chrome和IIS之间的网络流量并查看身份验证如何工作。捕获IE和IIS之间的网络流量并查看它是如何失败的。 –

回答

5

在类似的环境中的网络应用程序之一有这样的问题。事实证明,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

我必须重新启动服务器才能使其受到影响。感谢您的详细步骤... – user007

18

从TechNet文章,http://technet.microsoft.com/en-us/library/cc754628(v=ws.10).aspx

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

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

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

enter image description here

+0

这应该被标记为答案。伟大的步骤和解决问题。无瑕! – jlaverde

1

我曾与2008年的窗口模拟Windows身份验证R2 IIS 7.5的同样的问题。 我在这里跟着其他两个解决方案没有任何成功。 但应用这些更改后,我再次切换到内核模式,它工作。 我不知道它为什么会起作用,但在2个单独的虚拟目录中成功执行了此过程。