4

Active Directory への接続に AD モジュールを使用する Sitecore サイトがあります。Sitecore で「コンテンツ作成者」というロールが定義されているとします。コンテンツ作成者には、個々のユーザー アカウント (「jsmith」) が含まれる場合もあれば、AD グループ全体 (「Northeast Managers」) が含まれる場合もあります。直接的または間接的に (AD グループを介して) 「コンテンツ作成者」ロールに属するすべてのユーザーのリストを取得する必要があります。現在、私のコードは、「コンテンツ作成者」ロールの直接のメンバーであるユーザーのみを返しているようです。これが私のコードです:

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

このコードは、その役割にあるすべての人の「有効な」リストを返すと想定していました。その役割を直接果たしている人だけを返すようです。全員に役割を持たせる他の方法があるかどうか、誰か知っていますか?

4

2 に答える 2

7

Sitecoreはロール内のロールを許可し、機能はMS ASP.NETメンバーシップのものの上に構築されているため、これはSitecoreに固有の問題であることがわかりました。「間接」ユーザーを含むすべてのユーザーをロールに含めるには、次のコードを使用する必要があります。

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

これにより、間接ユーザーを含むすべてのユーザーが表示されます。

于 2012-03-19T18:45:13.530 に答える