IIS Windows身份验证怪异

时间:2013-03-12 16:23:03

标签: iis dns windows-authentication

我有一个包含两个网站的网络服务器:a&湾
a是生产。

b正在测试/分期。

在我之前编写这些应用程序的人依赖于

Request.ServerVariables("LOGON_USER") 

当用户通过Windows身份验证对服务器进行身份验证时分配。在a,这很有效,在b上有一些奇怪之处:<​​/ p>

我收到登录提示,但是我无法使用[domain] \ myusername登录,我可以使用\\ myusername,相同的密码(基于AD)。据我所知,IIS配置完全相同,唯一不一致的是从a.domain.com指向b.domain.com的DNS CNAME。将DNS记录更改为指向IP修复了问题,但我正在尝试了解发生了什么。

以前的DNS记录:b.domain.com > a.domain.com

工作DNS记录:b.domain.com > 10.0.x.131

应该是b&gt; a&gt;常规的Windows身份验证,但由于某种原因,我发现自己使用\\,它是在域名上添加两次还是什么?关于身份验证究竟是什么?

有意义吗?

1 个答案:

答案 0 :(得分:1)

一些想法。

  • 您的服务器在哪个特定版本的操作系统下运行?特别是Microsoft在不同版本中的行为往往有些不同,文档是特定于版本的

  • 很难回答“发生了什么”的问题,因为没有办法确定什么是正确的。我可以抛弃假设(和意志),如果你能把这个问题说成“如何解决这个问题”而不是“正在发生什么”你可以检查我是否正确并做出回应,可能已经获得了一些沿途有更多相关数据。

  • 这听起来更像是深入系统管理理解而不是编程理解 - 如果你没有得到你需要的东西,你可能会更好地询问服务器故障。

据说,在没有其他信息的情况下,“\”很可能是由两件事之一造成的。

您可能有两个不同的代码部分,每个部分都添加一个'\'。在很多情况下,域名在有和没有尾随'\'的情况下都有效。因此,很可能Windows身份验证在域名之后和登录ID之前立即添加一个,以确保两者之间的分离。如果您的DNS CNAME查找是出于类似原因在域名末尾自动添加一个,则两者可能会堆叠。

DNS进程中的某个地方可能已经通过转换器将控制字符更改为转义字符(作为避免某些安全漏洞的方法)。 '\'用作此类转义字符的基础,因此需要自己的转义字符('\')。