【问题标题】:IIS Windows Authentication weirdnessIIS Windows 身份验证异常
【发布时间】:2013-03-12 16:23:02
【问题描述】:

我有一个带有两个网站的网络服务器: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 身份验证,但由于某种原因我发现自己使用 \\ ,它是在域名上添加两次还是什么? \\ 在身份验证方面到底是什么?

有意义吗?

【问题讨论】:

    标签: iis dns windows-authentication


    【解决方案1】:

    一些想法。

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

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

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

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

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

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

    【讨论】:

    • 这实际上是 \\ 正在发挥作用的默认 Windows 身份验证提示。我认为 DNS 条目正在破坏主机标头混淆 IIS,我只是想知道为什么它会这样混淆它,我不相信 DNS 应该有任何影响。通过发布此内容,我更希望有人在此之前遇到过它,即 \\ 部分。 \\ 通常是一种逃避,但 \ 本身也不起作用。
    • 如果您能回答您正在使用哪个操作系统的问题,我或许可以进一步提供帮助。
    • 这是一个运行 IIS 6 的 Windows Server 2003 服务器,包含三个网站:default、webapps 和 webstage。
    • 我想我的问题归结为为什么 DNS CNAME 重定向会破坏 IIS 的 Windows 身份验证。没有其他问题,只是身份验证。为了清楚起见,它是这样的:codeproject.com/KB/WCF/WCFBasicHttpBinding/2.jpg
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 2011-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多