Мы используем следующий код, чтобы получить группы пользователей активного каталога.Группа пользователей домена не получает для пользователя активного каталога
StringCollection groups = new StringCollection();
try
{
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, domainName, userName, password))
{
//find user roles
UserPrincipal user = UserPrincipal.FindByIdentity(pc, IdentityType.SamAccountName, loginUserName);
if (user != null)
{
DirectoryEntry de = (DirectoryEntry)user.GetUnderlyingObject();
object obGroups = de.Invoke("Groups");
foreach (object ob in (IEnumerable)obGroups)
{
DirectoryEntry obGpEntry = new DirectoryEntry(ob);
groups.Add(obGpEntry.Name);
}
}
}
}
catch (Exception e)
{
}
Это работает почти так, как ожидалось. Но пока мы проверяем пользователей с помощью группы Domain Users
, метод не возвращает имя группы. Некоторые пользователи только с этой группой Domain Users
, и пока мы вызываем этот метод для таких пользователей, он возвращает пустую группу.
Любые предложения, пожалуйста ..
Да, я использовал это раньше, но потом я получил сообщение об ошибке «Не удалось получить информацию о домене (1355)». Я не могу понять причину, поэтому я перешел к использованию старой техники. –
Данная ссылка сейчас показывает ошибку 404 http://dunnry.com/blog/2005/01/18/DeterminingYourPrimaryGroupInActiveDirectoryUsingNET.aspx%24 –
@mahesh: извините, у меня был дополнительный символ после вставки - исправлено, работает сейчас. –