2013-03-12 253 views
5

我有一个Web服务器,有两个网站:a & b。
一个是生产。IIS Windows身份验证奇怪

b正在测试/分期。

谁写这些应用我依靠

Request.ServerVariables("LOGON_USER") 
当用户验证通过对Windows身份验证的服务器被分配

之前。在这一点上,这很好,在b有一些奇怪:

我得到我的登录提示,但我不能使用[域名] \ 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> A>常规的Windows身份验证,但由于某些原因,我发现自己使用\\,它是在套结域名两次或什么?关于认证的究竟是\\ \ \ \

有意义吗?

回答

0

一些想法。

  • 哪个特定版本的操作系统是您的服务器正在运行?微软尤其倾向于在不同版本中有不同的行为,并且文档是特定于版本的

  • 由于无法确定什么是正确的,因此很难回答“发生了什么”的问题。我可以抛出假设(并且会),如果你能够将问题称为“我该如何解决这个问题”而不是“发生了什么”,你可以检查我是否正确并回应,可能已经获得了一点一路上有更多相关数据。

  • 这听起来好像是深层次的系统管理理解,而不是编程理解 - 如果你在这里没有得到你需要的东西,你可能会在serverfault上有更好的运气。

有人说过,在没有其他信息的情况下,“\”最可能由两件事中的一件产生。

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

有可能在域名解析过程中某个地方可能已经通过转换器将控制字符转换为转义字符(作为避免某些安全漏洞的一种方式)。 '\'被用作这种转义字符的基础,因此需要它自己的转义字符('\')。

+0

它实际上是\\开始使用的默认Windows身份验证提示。我在想DNS的入口是混淆了IIS的主机头,我只是想知道为什么它会这样混淆,我不相信DNS应该有任何作用。通过张贴这个我更希望有人已经遇到过,即\\部分。 \\通常是一种逃避,但\本身也不起作用。 – RandomUs1r 2013-03-20 15:37:54

+0

如果您可以回答您正在使用哪个操作系统的问题,那么我可能会进一步提供帮助。 – 2013-03-20 16:22:35

+0

这是运行带有三个网站的IIS 6的Windows Server 2003服务器:默认,webapps和webstage。 – RandomUs1r 2013-03-20 17:34:52