AD Query, сервер не работает - PullRequest
0 голосов
/ 03 апреля 2012

Итак, у меня есть этот метод, и в последней строке, где он попытался получить samAccountName, он вызывает исключение COM, что сводит меня с ума.

Есть идеи?

public User FindUsername(string samAccountName, string groupDisplayName)   
        {
            using (DirectoryEntry searchRoot = new DirectoryEntry(ldapf, ldapu, ldapp))
            {
                using (DirectorySearcher searcher = new DirectorySearcher(searchRoot))
                {               
                    searcher.Asynchronous = false;
                    searcher.PropertiesToLoad.Add("SAMAccountName");
                    searcher.PropertiesToLoad.Add("displayName");
                    searcher.PropertiesToLoad.Add("uSNChanged");
                    searcher.PropertiesToLoad.Add("member");
                    searcher.PropertiesToLoad.Add("co");
                    searcher.PropertiesToLoad.Add("company");
                    searcher.PropertiesToLoad.Add("mail");


                    searcher.Filter = String.Format("(SAMAccountName={0})", samAccountName);
                    searcher.SearchScope = SearchScope.Subtree;
                    searcher.PageSize = 1000;

                    SearchResult result = searcher.FindOne();
                    ResultPropertyCollection resultPropColl = result.Properties;
                    Object memberColl = resultPropColl["member"];
                    using (DirectoryEntry memberEntry = new DirectoryEntry("LDAP://" + memberColl, ldapu, ldapp))
                    {
                        try
                        {
                            System.DirectoryServices.PropertyCollection userprops = memberEntry.Properties;
                            object obVal = userprops["SAMAccountName"].Value;

1 Ответ

0 голосов
/ 03 апреля 2012

Я заметил проблему с моим кодом, который работал где-то еще, и мне не хватало foreach

foreach (Object memberColl in resultPropColl["member"])
                    {

Видимо, если он возвращает одного пользователя, resultPropColl ["member"] все еще является коллекцией объектов?

...