我有一个包含两个网站的网络服务器: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身份验证,但由于某种原因,我发现自己使用\\,它是在域名上添加两次还是什么?关于身份验证究竟是什么?
有意义吗?
答案 0 :(得分:1)
一些想法。
您的服务器在哪个特定版本的操作系统下运行?特别是Microsoft在不同版本中的行为往往有些不同,文档是特定于版本的
很难回答“发生了什么”的问题,因为没有办法确定什么是正确的。我可以抛弃假设(和意志),如果你能把这个问题说成“如何解决这个问题”而不是“正在发生什么”你可以检查我是否正确并做出回应,可能已经获得了一些沿途有更多相关数据。
这听起来更像是深入系统管理理解而不是编程理解 - 如果你没有得到你需要的东西,你可能会更好地询问服务器故障。
据说,在没有其他信息的情况下,“\”很可能是由两件事之一造成的。
您可能有两个不同的代码部分,每个部分都添加一个'\'。在很多情况下,域名在有和没有尾随'\'的情况下都有效。因此,很可能Windows身份验证在域名之后和登录ID之前立即添加一个,以确保两者之间的分离。如果您的DNS CNAME查找是出于类似原因在域名末尾自动添加一个,则两者可能会堆叠。
DNS进程中的某个地方可能已经通过转换器将控制字符更改为转义字符(作为避免某些安全漏洞的方法)。 '\'用作此类转义字符的基础,因此需要自己的转义字符('\')。