2012-03-29 5 views
1

現在、私はSharepoint 2010でカスタマイズされた人選機を持っています。アカウント名だけでなくその名前も検索します。名前とsamaccountnameを同時に検索する

しかし、2つの異なる方法で行われます。私は複雑なADクエリの経験はありませんが、私はこれを1つだけで行することができますか?私は必要なもの

は、名前のsamaccountnameをOR一部の一部

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

完璧です、あなたは男です!!! \ –

関連する問題