c# – 我应该使用域名还是域控制器名称绑定到Active Directory?
我正在使用C#和C,通过LDAP提供程序与Active Directory进行通信的应用程序.该应用程序在
Windows 2003,2008和2008 R2上运行.我正在使用看起来像这样的绑定字符串:
LDAP://mydomain.com/CN=Fred,DC=mydomain,DC=com 应用程序负责目录中的读写操作.例如,在一个场景中,它会创建一个新OU,然后在该新OU中创建多个用户和组.在另一种情况下,它向交互式用户呈现目录视图,并允许用户创建新的组或用户帐户. 到目前为止,我一直在使用基于域的绑定(上面的第一个示例绑定字符串),基于MSDN的建议:
当域上有多个域控制器时,会出现此问题;我现在称他们为Lefty和Righty.如果我使用LDAP://mydomain.com/blah绑定到目录,我隐式连接到Lefty或Righty.以下是发生的情况的示例场景: >绑定到mydomain.com的根目录. Active Directory胆量选择Lefty作为要与之通信的服务器. 在步骤3中,不严格要求重新绑定,但在某些情况下涉及两个不同的可执行文件,因此我无法共享IAD或DirectoryEntry.在内部我认为Active Directory的内核正在使用DsGetDcName来选择要与之通信的服务器,并且其中的文档讨论了如何选择域控制器以及如何缓存该信息.不幸的是,据我所知,这不是应用程序可以真正控制的东西.在某些情况下,我看到应用程序始终连接到一个域控制器或另一个域控制器,但在其他情况下,应用程序似乎在域控制器之间来回切换(如上所述),并且事情不起作用. 解决实际问题:这只是基于域的绑定的基本限制吗?我认为如果我直接绑定到特定的域控制器,问题就会消失,但这会显着地复杂化应用程序代码,所以我希望避免它. 解决方法
这是ldap服务器复制的固有问题.我从未使用过c#api.
我曾在linux上使用eDirectory.在创建对象后,如果要引用它,最好的选择是坚持使用服务器/ DC. 为什么它会使应用程序复杂化?写一个功能来拿起一台服务器.功能 只有在遇到上述问题时才尝试使用此功能.在其他地方只需坚持使用域名. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |