Определить objectClass данного идентификатора из LDAP

Каков наилучший способ получить имя objectClass для идентификатора выдачи.

Мой вход должен быть чем-то вроде «IDNSKF» Мой вывод должен быть Group или Person или Computer.

Я использую следующий код, но иногда в distinctName я не нахожу OU = Groups , хотя объект является группой

Код:

DirectoryEntry de = new DirectoryEntry("LDAP://local.be");
        DirectorySearcher searcher = new DirectorySearcher(de);
        searcher.Filter = "(&(cn=variable))";
        searcher.SearchScope = SearchScope.Subtree;
        searcher.PropertiesToLoad.Add("distinguishedName");
        SearchResult result = searcher.FindOne();
        string s = result.GetDirectoryEntry().Properties["distinguishedName"].Value.ToString();
        if (s.IndexOf("OU=Groups") > -1)
            return Groups;
        if (s.IndexOf("OU=Users") > -1)
            return Users;
        if (s.IndexOf("OU=Computers") > -1)
            return Computer;

благодаря

1
nl ja de
Привет, EJP спасибо за ваш ответ, я обновил свой пост. он работает, но я хотел бы иметь лучший способ выполнить это в соответствии с Performance.
добавлено автор Maro, источник
Это всего лишь атрибут записи. Что вы пробовали?
добавлено автор EJP, источник

1 ответы

Я хотел поделиться с вами решением, которое я нашел:

SearchResult result = directorySearcher.FindOne();
        if (result == null)
            return new LocalPermissionEntry(accessRule);

        ResultPropertyValueCollection userValueCollection = result.Properties["objectClass"];

       //check if the entry is a group or a user.
        if (userValueCollection.Contains("group"))
            return new GroupPermissionEntry(accessRule);
        if (userValueCollection.Contains("person") || userValueCollection.Contains("user"))
            return new UserPermissionEntry(accessRule);

        return new LocalPermissionEntry(accessRule);
1
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot