В контексте 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!