2014-09-09 2 views
3

Я не программист по своей природе, поэтому заранее извиняюсь :) Я использую фрагменты кода от http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#39, и это было действительно полезно. Я использую его метод для получения членства в группах пользователей, и для этого требуется его метод AttributeValuesMultiString. У меня нет никаких синтаксических ошибок, но когда я вызываю метод Groups через Groups("username", true) я получаю следующее сообщение об ошибке:C# получить группы, в которых пользователь входит в Active Directory

An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in System.DirectoryServices.dll

Я сделал некоторое рытье, но ничего, кажется, на самом деле ответить, почему я получаю эту ошибку.

Заранее благодарен!

+0

Пожалуйста, разместите соответствующий код в своем теле вопроса, чтобы это могло быть полезно другим в будущем - если эта ссылка опустится, этот вопрос не имеет смысла. –

+1

использование PrincipalContext вместо этого более легкий более простой код для управления здесь является примером для вас http://stackoverflow.com/questions/2962539/how-to-get-a-list-of-groups-in-an-active-directory- группа – MethodMan

+0

@ DJ Kraze: это сработало отлично! Спасибо! – msindle

ответ

5

Вы должны проверить пространство имен (S.DS.AM). Читайте об этом здесь:

В принципе, вы можете определить контекст домена и легко найти пользователей и/или групп в AD:

// set up domain context 
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain)) 
{ 
    // find a user 
    UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "SomeUserName"); 

    if(user != null) 
    { 
     // get the user's groups 
     var groups = user.GetAuthorizationGroups(); 

     foreach(GroupPrincipal group in groups) 
     { 
      // do whatever you need to do with those groups 
     } 
    } 

} 

новый S.DS.AM позволяет очень легко играть с пользователями и группами в AD!

+1

Я согласен S.DS.AM проще - когда он работает. Но имейте в виду, что у него есть ошибки, которые Microsoft кажется неспособной/не желающей исправлять: https://connect.microsoft.com/VisualStudio/feedbackdetail/view/748790/userprincipal-current-throws-invalidcastexception – Joe

+0

Я всегда возвращаюсь к непоследовательным проблемам с DLL AccountManagement. Это кошмар. – Cody

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