6

我有一个带有两个网站的网络服务器:a 和 b。
a 是生产。

b 是测试/分期。

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

Request.ServerVariables("LOGON_USER") 

当用户通过 Windows 身份验证对服务器进行身份验证时分配。在 a 上,这很好用,在 b 上有些奇怪:

我得到了登录提示,但我无法使用 [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 > a > 常规 Windows 身份验证,但由于某种原因,我发现自己使用 \\ ,它是在域名上添加两次还是什么?\\ 在身份验证方面到底是什么?

说得通?

4

1 回答 1

1

一些想法。

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

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

  • 这听起来更像是对系统管理的深入理解,而不是对编程的理解——如果你在这里没有得到你需要的东西,你可能会更幸运地询问 serverfault。

话虽如此,在没有其他信息的情况下,“\”很可能是由两件事之一引起的。

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

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

于 2013-03-20T14:00:30.567 回答