Active Directory过滤器:邮件非空并且不以

时间:2016-07-12 12:54:24

标签: 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))那么我将获得mail = null的用户。

我有办法用一个查询来解决这个问题吗? Atm我在返回结果后在C#中删除了@ global.local。

修改

以上的作品,我的问题是我正在查看错误的属性。我本来应该使用userPrincipalName而不是@global.local部分的邮件进行过滤。

1 个答案:

答案 0 :(得分:0)

我刚测试了你的过滤器,它可以同时使用(mail=*)和c#和ldap工具。试试LDAP Browser,看看mail属性中的确切数据是什么,以及查询的行为是否相同。