powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / AD и вложенные группы
25 сообщений из 26, страница 1 из 2
AD и вложенные группы
    #38911291
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как узнать, что пользователь входит во вложенную группу AD (C#, 4.0)? Если он непосредственно в группе, то это просто и все работает, но если он во вложенной группе? Если подскажите, как можно по-простому получить список вложенных групп, то тоже отлично.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911296
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwe.Qwe1,

рекурсивно обходишь все группы в которые входит пользователь и группы в которые входят в эти группы.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911379
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как для группы узнать список вложенных групп?
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911391
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911476
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
МСУ http://codearticles.ru/articles/2667
Веселуха наступит тогда, когда админы вложат группу А в Б, а Б в А.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911483
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

надо таким админом просто руки оторвать :) и к заднице пришить :)
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911489
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве в AD не запрещена подобная рекурсия?
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911490
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Roman MejtesCat2,

надо таким админом просто руки оторвать :) и к заднице пришить :)

Админов не выбирают
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911493
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Shocker.ProА разве в AD не запрещена подобная рекурсия?
Оказывается нет. Я сам в это вляпался на точно такой же задаче

Код на работе, но ничего там сложного нет - обычная рекурсия с обработкой глобального List<string> с проверкой, если группа уже внесена в List
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911562
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2МСУ http://codearticles.ru/articles/2667
Веселуха наступит тогда, когда админы вложат группу А в Б, а Б в А.
Ты прав. Добавил замечание от твоего имени в рецепт.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911628
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public class PrincipalService
{
     const int MaximumDepth = 100;

     public static IEnumerable<string> GetGroups(string identity)
     {
         var ctx = new PrincipalContext(ContextType.Domain);
         var user = UserPrincipal.FindByIdentity(ctx, identity);
         return GetGroups(user, 0).Distinct();
     }

     private static IEnumerable<string> GetGroups(Principal principal, int currentDepth)
     {
         foreach (var group in principal.GetGroups())
         {
             yield return group.Name;
             if (currentDepth < MaximumDepth)
             {
                 foreach (string sub in GetGroups(group, currentDepth + 1))
                 {
                     yield return sub;
                 }
             }
         }
     }
} 
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38911897
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУТы прав. Добавил замечание от твоего имени в рецепт.исправь подргуппы на подгруппы. Разрешаю не упоминать моего имени
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38913449
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если пользователь не найден в AD? Что должна вернуть GetGroups? И правильно я понимаю, что использовать приведенный выше класс нужно так:
Код: c#
1.
return PrincipalService.GetGroups("APetrov").Where(x => String.Compare(x, "Группа", true) == 0).FirstOrDefault();
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38913531
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwe.Qwe1А если пользователь не найден в AD? Что должна вернуть GetGroups?
Что хочешь, то и возвращай.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38913684
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там же есть стандартный запрос в классе. включая флаг вложенные группы. Кода под рукой нет, к сожалению
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38913823
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Видимо это
Код: c#
1.
groupPrincipal.GetMembers(true)
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38913865
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwe.Qwe1Видимо это
Код: c#
1.
groupPrincipal.GetMembers(true)


Этот код вернет все principal objects в группе и подгруппах. Подожди пару часиков и он выплюнет тебе свалку принципалов, не только подгруппы.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38914396
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУQwe.Qwe1Видимо это
Код: c#
1.
groupPrincipal.GetMembers(true)


Этот код вернет все principal objects в группе и подгруппах. Подожди пару часиков и он выплюнет тебе свалку принципалов, не только подгруппы.
че ты гонишь? добавляешь в фильтр User=XXX и все. Если он входит в 100 групп - то получишь 100 групп
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38914401
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanче ты гонишь? добавляешь в фильтр User=XXX и все. Если он входит в 100 групп - то получишь 100 групп
А пример слабо?
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38914674
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему в GetGroups нет using (var ctx = ...)? Нужен он здесь?
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38914964
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУnetivanче ты гонишь? добавляешь в фильтр User=XXX и все. Если он входит в 100 групп - то получишь 100 групп
А пример слабо?
ну ведь не поленюсь - дома посмотрю!
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38915126
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Qwe.Qwe1А почему в GetGroups нет using (var ctx = ...)? Нужен он здесь?
Да, диспоузь всё, что диспоузится.

netivanМСУпропущено...
А пример слабо?
ну ведь не поленюсь - дома посмотрю!
Смотреть не надо. Надо выкатить рабочий код.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38915659
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
private SearchResultCollection SelectFromDirectory(
            string path,
            string filter,
            string login,
            string password)
        {
            DirectoryEntry de = GetDirectoryEntry(
                path,
                login,
                password);

            DirectorySearcher deSearch = new DirectorySearcher();
            deSearch.SearchRoot = de;
            deSearch.Filter = filter;
            PreparePropertiesList(deSearch);
            deSearch.SizeLimit = 0;
            deSearch.PageSize = 1000;
            deSearch.SearchScope = SearchScope.Subtree;
            SearchResultCollection results = deSearch.FindAll();
            return results;
        }


ключевое тут фильтр.
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38915722
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivan, и как это связано с groupPrincipal.GetMembers(true) ?
...
Рейтинг: 0 / 0
AD и вложенные группы
    #38915767
Qwe.Qwe1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Было уже обрадовался и взял себе код класса PrincipalService, но на определенных группах AD код зациклился (скорее всего из-за вложенности друг в друга (так уж сделали админы)) в бесконечность... Еще мелочь: если напрямую использовать using, то будет exception (почему и спросил выше)...
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / AD и вложенные группы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]