我首先想说的是,不幸的是,我无法在这种特定情况下更改代码,并且除了这个安装之外,代码在任何地方都可以使用。我怀疑存在配置/权限/信任问题,我希望获得有关如何修改环境以解决此问题的建议。
在这个特定的地方,在运行Search()
方法 on之后LdapConnection
,我得到一个由于某种原因LdapSearchQueue
不包含的内容。LdapSearchResult
请注意,它LdapSearchQueue
确实包含其他消息(特别是LdapSearchResultReference
and LdapResponse
),而不是LdapSearchResult
. 我可以手动检查 AD 并查看理论上它应该有正确的响应。
显然,它以entry
存在结束null
。
var filter = $"(&(objectClass=User)(sAMAccountName={<user_name>}))";
var searchBase = "DC=<domain_name>,DC=com";
var search = conn.Search(searchBase, LdapConnection.SCOPE_SUB, filter, null, false, null, null);
LdapMessage message;
LdapEntry entry = null;
while ((message = search.getResponse()) != null)
{
if (!(message is LdapSearchResult searchResultMessage))
{
continue;
}
entry = searchResultMessage.Entry;
}
任何建议表示赞赏