如果可能,请不要对服务器名称进行硬编码。 此外,在大多数情况下,绑定不应不必要地限制到单个服务器。 Active Directory 域服务支持无服务器绑定,这意味着 Active Directory 可以绑定到默认域,而无需指定域控制器的名称。 对于普通应用程序,这通常是已登录用户的域。 对于服务应用程序,这里指的是服务登录账户所在的域或服务所模拟的客户端所在的域。
在 LDAP 3.0 中,rootDSE 定义为目录服务器上的目录数据树的根目录。 rootDSE 不是任何命名空间的一部分。 rootDSE 的目的是提供有关目录服务器的数据。 下面是用于绑定到 rootDSE 的绑定字符串。
LDAP://<servername>/rootDSE
<服务器名称> 是服务器的 DNS 名称。 <servername> 是可选的,如下所示。
LDAP://rootDSE
在这种情况下,将使用调用线程的安全上下文所在域中的默认域控制器。 如果站点中无法访问域控制器,将使用可以找到的第一个域控制器。
rootDSE 是每个目录服务器上的一个已知且可靠的位置,用于获取域、架构和配置容器的可分辨名称,以及有关服务器及其目录数据树内容的其他数据。 这些属性很少在特定服务器上更改。 应用程序可以在启动时读取这些属性,并在整个会话中使用它们。
总之,应用程序应使用无服务器绑定绑定到当前域中的目录,使用 rootDSE 获取命名空间的可分辨名称,并使用该可分辨名称绑定到命名空间中的对象。
有关 rootDSE 支持的属性的详细信息,请参阅 Active Directory 架构文档中 RootDSE。
有关使用无服务器绑定和 rootDSE 的更多信息以及相关代码示例,请参阅 获取域区分名称的示例代码。