Как получить всех пользователей в роли, включая роли в ролях? - PullRequest
4 голосов
/ 19 марта 2012

У меня есть сайт Sitecore, который использует модуль AD для подключения к Active Directory. Допустим, у нас есть определенная в Sitecore роль под названием «Авторы контента». Авторы контента могут содержать отдельные учетные записи пользователей - «jsmith» - или могут содержать целую группу AD - «Северо-восточные менеджеры». Мне нужно получить список всех пользователей, которые находятся в роли «Авторы контента», прямо или косвенно (через группу AD). Прямо сейчас мой код, похоже, возвращает только тех пользователей, которые непосредственно являются членами роли «Авторы контента». Вот мой код:

string[] _roleUserNames = System.Web.Security.Roles.GetUsersInRole("Content Authors");

Я предполагал, что этот код вернет «эффективный» список всех, кто находится в этой роли. Кажется, возвращаются только люди, которые непосредственно в этой роли. Кто-нибудь знает, есть ли какой-нибудь другой способ получить всех в роли?

Ответы [ 2 ]

7 голосов
/ 19 марта 2012

Я выяснил, что это особая проблема для Sitecore, поскольку Sitecore допускает роли в ролях и что функциональность построена на основе членства в MS ASP.NET. Чтобы получить всех пользователей в роли, включая «косвенных» пользователей, вы должны использовать следующий код:

IEnumerable<User> _roleUsers = Sitecore.Security.Accounts.RolesInRolesManager.GetUsersInRole(Role.FromName("Content Authors"), true);

Это даст вам всех пользователей, включая косвенных пользователей.

0 голосов
/ 06 ноября 2013

Я знаю, что это старая версия, но я столкнулся с той же проблемой, и вышеуказанное решение не сработало для нас. Сторонние пользователи в Active Directory не найдены, только косвенные пользователи в ролях Sitecore.

Дальнейшие исследования поставщика ролей модуля AD, по-видимому, указывают на то, что существует код для косвенных ролей, но вызов для его получения, похоже, не работает. dotPeek показал мне, что для параметра есть явное значение «false», которое запускает косвенный поиск ролей пользователей и не считывает данные из параметра.

Нам нужно было декомпилировать код AD 1.1, а затем исправить эту часть, чтобы он заработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...