Windows身份验证在ie7中不起作用

时间:2011-09-07 16:09:03

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

真的需要帮助,尝试了很多事情并且没有想法。

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

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

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

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

我尝试了以下内容:

    iis中的
  • 仅将Windows身份验证设置为已启用(其余已禁用)
  • 将NTLM移至提供者列表的顶部
  • 完全控制到Everyone / IUSR / Network Service / DeafultAppPool ...列表的Web目录。
  • 检查ie设置(启用集成Windows身份验证)
  • IE7中的用户身份验证设置为“仅在Intranet区域中自动登录”。
  • 在web.config中设置以下内容:
    • <anonymousIdentification enabled="false" />
    • <authentication mode="Windows" />
    • <identity impersonate="false" />
  • 已执行:cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"
当我在IE7中访问内部网时,我确信它不是一个浏览器设置,因为它是针对AD验证的。

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

非常感谢

3 个答案:

答案 0 :(得分:19)

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

  

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

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

  1. 选择您的网站。
  2. 双击身份验证。
  3. 选择“Windows身份验证”(确保已启用)。
  4. 点击右栏中的“提供商...”。
  5. 选择NTLM并单击“上移”。
  6. enter image description here

答案 1 :(得分:5)

在类似的环境中有一个网络应用程序出现此类问题。事实证明IE正在尝试使用Kerberos进行身份验证,而在IIS身份验证设置中关闭了Kerberos。无法使用Kerberos后Chrome正在降至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 :(得分:1)

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