2012-03-29 78 views
1

目前我在SharePoint 2010中有一个自定义人员选择器,它搜索帐户名称上的搜索词,但也搜索名称。同时搜索名称和samaccountname

然而它完成了2种不同的方法。我没有经验与复杂的广告查询,但我想我可以做到这一点,只有一行和一个或?

我需要的是它匹配要么,名称的SAM帐户或部分的一部分

public static DataTable ExecuteNameQuery(string rootPath, string search) 
    { 
     string filter = "(&(objectCategory=person)(objectClass=user)(name=*" + search + "*))"; 
     return ExecuteADQuery(rootPath, filter); 
    } 


     public static DataTable ExecutesAMAccountNameQuery(string sAMAccountName) 
     { 
      string filter = "(&(objectCategory=person)(objectClass=user)(sAMAccountName=*" + sAMAccountName + "*))"; 
      return ExecuteADQuery("GC:", filter); 
     } 

回答

3

是的,你可以组和/或使用以下语法,在LDAP查询运营商根据你的榜样:

string filter = "(&(objectCategory=person)(objectClass=user)(|(name=*" + search + "*)(samAccountName=*" + search + "*)))"; 

这应该对名称或的samAccountName搜索。

另外,MSDN有primer on LDAP queries

希望有帮助

+0

完美,你是那个家伙!!! \ – 2012-03-29 12:43:26