2013-05-10 6 views
2

Я понимаю, как использовать User.Identity и User.IsInRoleActive Directory - Роли пользователя

Есть ли способ, чтобы увидеть все роли пользователя находится в?

У нас много групп, и некоторые люди в большом количестве групп, но я не хочу писать User.IsInRole 20+ раз.

ответ

5

В контексте Active Directory Роли Вы действительно ссылаетесь на группы безопасности (или авторизации), членом которых является пользователь.

Итак, если вы используете .NET 3.5 и выше, вы должны проверить пространство имен System.DirectoryServices.AccountManagement (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 authorization groups - those are the "roles" 
     var groups = user.GetAuthorizationGroups(); 

     foreach(Principal principal in groups) 
     { 
      // do something with the group (or role) in question 
     } 
    } 
} 

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

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