在IIS6下运行的Intranet网站的身份验证问题

时间:2011-01-17 18:41:46

标签: asp.net iis security windows-authentication application-pool

我有一个在IIS6下运行的Intranet网站(在特定端口下,而不是默认端口),启用了集成的Windows身份验证,并使用配置了服务帐户的应用程序池。问题是,如果我使用URL中的完全限定域使用服务器名称访问网站,它会抛出登录提示(即使输入我的Windows登录凭据也不起作用),但如果我使用的是IP地址服务器然后它工作正常。请让我知道我需要做什么才能获得服务器名称工作的URL。 例如http://servername:8080/default.aspx抛出登录提示,但http://ip地址:8080 / default.aspx工作正常

4 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我相信它与Kerberos身份验证机制有关。如果它转向NTLM它将起作用(它在使用IP地址时会这样)。 Kerberos需要在Active Directory上注册的SPN才能工作。 Kerberos也不允许您在不同的帐户下运行应用程序池,但使用相同的服务器名称。在这些情况下,您应该拥有该站点的备用名称,并使用Kerberos注册该名称。但是,我还没有真正解决这个问题,所以这些只是建议。

答案 1 :(得分:0)

我想到了两个可能的问题:

  1. 网络中的DNS服务器未将servername解析为IP

    • 从命令行运行Ping servername以检查名称是否带来了预期的IP
    • 编辑C:\Windows\System32\drivers\etc\hosts文件并添加服务器名称和IP地址
  2. IIS6中的Bindings不期望servername

    • 确保列表中包含servernameHost Header Name字段为空 alt text

答案 2 :(得分:0)

当Web服务器的IP地址由于新的内部IP寻址方案而改变时,我确实有这些症状。通过身份验证从Web服务器本身进行,但不是从任何其他系统。从其他系统,使用URL中的主机名导致IE提示始终被拒绝的凭据,使用URL中的IP地址导致IE提示已接受的凭据。在追逐了很多红色鲱鱼后,我们怀疑服务器正在使用旧IP地址缓存凭据,因此我们重新启动了服务器,一切正常。

答案 3 :(得分:0)

试试这个。我有完全相同的问题,并为我修复它(我是链接的线程)

我将我的网站的AuthenticationProvider设置为“NTLM,Negotiate”

遵循以下说明: http://support.microsoft.com/kb/215383

稍微改变他们设定提供者的指示

矿:

cscript adsutil.vbs set w3svc/WebSite/root/NTAuthenticationProviders "**NTLM, Negotiate**"

您可以通过单击IIS左侧的“网站”文件夹获取网站ID。这应该列出您的所有网站ID

感谢Nick的回答让我知道了