Active directory Active Directory筛选器:邮件不为空且不';t以
我正在尝试编写一个过滤器,以返回具有邮件地址但不以@global.local结尾的用户。我试过这个,但不起作用Active directory Active Directory筛选器:邮件不为空且不';t以,active-directory,ldap,Active Directory,Ldap,我正在尝试编写一个过滤器,以返回具有邮件地址但不以@global.local结尾的用户。我试过这个,但不起作用 searcher.Filter = "(&(objectCategory=Person)(name=*)(mail=*)(!(mail=*@global.local))(objectClass=user))"; 这将以@global.local返回用户。我假设mail=*覆盖(!(mail=@global.local))。如果我只使用(!(mail=@global.local
searcher.Filter = "(&(objectCategory=Person)(name=*)(mail=*)(!(mail=*@global.local))(objectClass=user))";
这将以@global.local返回用户。我假设mail=*覆盖(!(mail=@global.local))。如果我只使用(!(mail=@global.local)),那么我将获得mail=null的用户
我有没有办法用一个查询来解决这个问题?返回结果后,我将删除C#中的@global.local
编辑
上述工作,我的问题是,我看错了财产。对于
@global.local
部分,我应该在userPrincipalName而不是mail上进行筛选。我刚刚测试了您的筛选器,它可以在(mail=*)
和不使用以及在c#和ldap工具中正常工作。尝试查看邮件属性中的确切数据是什么,以及查询是否以相同的方式运行。这不是一个C#问题;这充其量只是一个.NET问题,甚至可能不是这样,因为它只是关于编写LDAP筛选器字符串的。请重新措辞并重新标记它,这样它将与未来搜索此内容的非C#specific的人相关。你是对的,现在编辑它。我很愚蠢,它当然有效。我的问题是@global.local
不在mail属性上,而是在userPrincipalName属性上。谢谢你的帮助,它让我再次看到我的错误。