C# 无法在SearchRequest中查询没有可分辨名称的广告?
我正在运行一个测试Active directory,并尝试使用ldap进行查询。我创建了一个名为空的searchrequest对象和一个过滤器,这会抛出带有“object不存在”消息的noSuchObject错误代码。我只是从我的测试广告中得到这个,如果我使用我公司的制作广告,我不会得到例外,只是一个没有点击的回应。我需要在我的测试广告中改变什么才能看到类似的行为 您可以使用C# 无法在SearchRequest中查询没有可分辨名称的广告?,c#,active-directory,distinguishedname,C#,Active Directory,Distinguishedname,我正在运行一个测试Active directory,并尝试使用ldap进行查询。我创建了一个名为空的searchrequest对象和一个过滤器,这会抛出带有“object不存在”消息的noSuchObject错误代码。我只是从我的测试广告中得到这个,如果我使用我公司的制作广告,我不会得到例外,只是一个没有点击的回应。我需要在我的测试广告中改变什么才能看到类似的行为 您可以使用PrincipalSearcher和“示例查询”主体进行搜索: // create your domain context
PrincipalSearcher
和“示例查询”主体进行搜索:
// create your domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
// define a "query-by-example" principal - here, we search for a UserPrincipal
// and with specified last name (surname)
UserPrincipal qbeUser = new UserPrincipal(ctx);
qbeUser.Surname = "Willis";
// create your principal searcher passing in the QBE principal
PrincipalSearcher srch = new PrincipalSearcher(qbeUser);
// find all matches
foreach(var found in srch.FindAll())
{
// do whatever here - "found" is of type "Principal" - it could be user, group, computer.....
}
如果您还没有-请阅读MSDN文章,这篇文章很好地展示了如何最好地利用System.DirectoryServices.AccountManagement中的新功能
当然,根据您的需要,您可能希望在您创建的“示例查询”用户主体上指定其他属性:
姓氏
(或姓氏)
DisplayName
(通常为:名字+空格+姓氏)
SAM帐户名
-您的Windows/AD帐户名
用户主体名称
-您的”username@yourcompany.com“样式名
您可以在UserPrincipal
上指定任何属性,并将其用作PrincipalSearcher
的“示例查询”@marc\u通过给您一种搜索方式来回答
回到你的问题,回忆一下:
可以使用LDAP搜索
您请求开始搜索的点头(在您的情况下是OU的DN)
搜索范围(基本、一级、子树)
搜索的筛选器((objectClass=group))
要检索的属性
在您的情况下,当您的ADSI层能够找到一个默认域时,它就会工作。因此,我认为您必须创建一个真正的LDAP-SEARCH请求,也许还需要提供凭据。谢谢您的其他回答。我通过在连接中使用GC端口3268而不是DC端口389解决了问题。我们可以查看查询吗?您需要添加生产广告正在使用的类/模式。