我有一些代码需要一个 ldap 字符串、一个用户名和一个密码,然后尝试向 ldap 服务器进行身份验证。用户名可能包含也可能不包含域名,例如,“DOMAIN\username”或“username”是此代码的有效输入。
从 ldap 字符串,我将有一个清晰的 url,它可能看起来像这个 LDAP://servername.com/DC=...等。如果我拆分服务器名称部分,我会得到“servername.com”或“servername.corp”,或者诸如此类。但是,如果我尝试使用 servername.com\username 登录,则不会进行身份验证。所以一种选择是拆分最后一个“.”,如果有的话。从活动目录的角度来看,这是否有效?如果有 xyx.servername.com 等子域会发生什么?
我必须承认,我对 Active Directory 的了解不够,无法回答上述问题,而且我找不到解释这些问题的文档。一些支持您的答案的文档真的很有帮助!
当登录显示为 时DOMAIN\user,DOMAIN 是 AD 域的 NETBIOS 名称。这通常是域的最低子域,但它可以是任何内容。显示名称的另一种有效方式是使用 UPN 后缀,即user@domain.com. 这样做的问题是管理员可以在一个域中拥有多个 UPN,尽管默认是 FQDN。
基本上,如果您控制 AD,您应该知道这一点。如果你不知道,那么你就无法确定。