【问题标题】:search for name and samaccountname at the same time同时搜索name和samaccountname
【发布时间】:2012-03-29 10:48:08
【问题描述】:

目前我在 sharepoint 2010 中有一个自定义的人员选择器,它会在帐户名称和名称上搜索搜索词。

但是它通过 2 种不同的方法完成。我没有复杂的 AD 查询经验,但我想我可以只用一个和一行和一个 OR 来做到这一点?

我需要的是它匹配 samaccountname 的一部分或名称的一部分

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);
        }

【问题讨论】:

    标签: c# active-directory ldap directoryservices


    【解决方案1】:

    是的,您可以根据您的示例使用以下语法在 LDAP 查询中对和/或运算符进行分组:

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

    这应该对 name 或 samAccountName 执行搜索。

    另外,MSDN 有一个primer on LDAP queries

    希望有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多