2015-09-22 5 views
2

Я получаю ADgroup используя этот код,Как получить подстрочный объект?

 using (var context = Utilities.GetPrincipalContext(OU)) 
     using (var gpe = new GroupPrincipalExtension(context, "*")) 
     using (var ps = new PrincipalSearcher(gpe)) 
     { 
      foreach (var g in ps.FindAll()) 
      { 
       Console.WriteLine(g.DisplayName); 
      } 
     } 

Это дает DisplayName нуль, так как атрибут доступен, но под другим объектом, вот что я вижу в локальном окне при отладке,

enter image description here

Редактировать

Я думал, код был понятен, но если это вызывает путаницу, я пытаюсь получить все групп в конкретном подразделении, а затем пытается получить пользовательский атрибут «DisplayName», GroupPrincipalExtension наследует класс GroupPrincipal для system.directoryservices.accountmanagement.

При отладке я вижу, что объект «g» имеет Test.AD.GroupPrincipalExtension (я не знаю, как его называть? Underline object? Свойство? Not sure ...), у которого есть свойство DisplayName.

Потому что я не могу получить g.DisplayName, как я могу получить следующее,

g.Test.AD.GroupPrincipalExtension.DisplayName 
+1

почему отрицательный голос? – Mathematics

+1

Я еще не голосовал, но на самом деле непонятно, что вы просите. Что ты пытаешься сделать? Вы видели этот вопрос? (http://stackoverflow.com/questions/6692767/how-do-i-get-the-ad-display-name-of-the-currently-logged-in-user) помогает ли вам? –

+0

@ RoyT. Я обновил свой вопрос, чтобы сделать его более очевидным, чтобы получить ответ. – Mathematics

ответ

1

Там нет пути g.Test.AD.GroupPrincipalExtension.DisplayName. Visual Studio просто показывает вам, что g имеет тип Test.AD.GroupPrincipalExtension (так как g имеет тип Principal).

Поскольку вы используете gpe в качестве фильтра на PrincipalSearcher, тип, который вы видите, это GroupPrincipalExtension. (Ваш GroupPrincipalExtension наследует Principal, который является типом PrincipalSearchResult<Principal> перечисляет, как и в вашем foreach).

Вы должны найти проблему в другом месте, возможно, в вашем GroupPrincipalExtension. Звонок Principal.DisplayName в порядке.

Смежные вопросы