IIS Windows 身份验证怪异

标签 iis dns windows-authentication

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

b 是测试/分期。

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

Request.ServerVariables("LOGON_USER") 

当用户通过 Windows 身份验证对服务器进行身份验证时分配。在 a 上,这很好用,在 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 身份验证,但由于某种原因,我发现自己使用了\\,它是否在域名上添加了两次或其他什么?关于身份验证,\\到底是什么?

有道理?

最佳答案

一些想法。

  • 您的服务器在哪个特定版本的操作系统下运行? Microsoft 尤其倾向于在不同版本之间有一些不同的行为,并且文档是特定于版本的
  • 很难回答“发生了什么”的问题,因为无法确定什么是正确的。我可以抛出假设(并且会),如果您可以将问题表述为“我如何解决这个问题”而不是“发生了什么”,您可以检查我是否正确并做出回应,可能已经获得了一些沿途更相关的数据。
  • 这听起来更像是关于深入的系统管理理解而不是编程理解——如果你在这里没有得到你需要的东西,你可能会更幸运地询问 serverfault。

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

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

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

    关于IIS Windows 身份验证怪异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366649/

    相关文章:

    c - res_query 是线程安全的吗?

    smtp - 如何正确设置 DNS SPF 记录?

    c# - Windows 身份验证不适用于本地 IIS 7.5。错误 401.1

    java - HttpClient 未使用 NTLM 进行身份验证

    asp.net - 当我们将 Load User Profile = True 设置为应用程序池标识时,实际加载的是哪个用户?

    IIS Web 部署的 "Import/Export Application"操作丢失?

    amazon-web-services - 为裸域添加 CNAME 条目

    iis-7.5 - 无法使用 HttpClient 对 ASP.NET Web Api 服务进行身份验证

    c# - 应用程序主机配置错误 : Cannot write configuration file due to insufficient permissions with IIS shared configuration

    在负载平衡服务器上加载时,ASP.NET 站点有时会卡住和/或在页面顶部显示奇怪的文本