поиск по имени и samaccountname одновременно

В настоящее время у меня есть настроенное средство выбора людей в sharepoint 2010, оно ищет поисковый запрос по имени учетной записи, а также по имени.

Однако это делается двумя разными способами. У меня нет опыта работы со сложными запросами 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);
        }

person Luis Valencia    schedule 29.03.2012    source источник


Ответы (1)


Да, вы можете группировать и/или операторы в запросах LDAP, используя следующий синтаксис на основе вашего примера:

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

Это должно выполнять поиск либо по имени, либо по samAccountName.

Кроме того, в MSDN есть учебник по запросам LDAP.

надеюсь, это поможет

person T. Fabre    schedule 29.03.2012