2012-03-19 2 views
3

Active Directory 연결에 AD 모듈을 사용하는 Sitecore 사이트가 있습니다. Sitecore에서 정의 된 역할이 "콘텐츠 작성자"라고 가정 해 봅시다. 콘텐츠 제작자는 개별 사용자 계정 ("jsmith")을 포함하거나 전체 AD 그룹 (북동 관리자)을 포함 할 수 있습니다. "콘텐츠 작성자"역할에 속한 모든 사용자의 목록을 직접 또는 간접적으로 (AD 그룹을 통해) 가져와야합니다. 지금은 내 코드가 직접 "콘텐츠 작성자"역할의 멤버 인 사용자를 반환하는 것으로 보입니다. 이 코드는 그 역할에 모든 사람의 "효과적인"목록을 반환한다고 가정했다역할에서 역할을 포함한 모든 사용자를 얻는 방법?

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

: 여기 내 코드입니다. 그 역할에 직접적으로 참여하는 사람들 만 돌려주는 것 같습니다. 모든 사람을 역할에 맡길 수있는 다른 방법이 있는지 아는 사람이 있습니까?

답변

6

Sitecore는 Sitecore에 특정 문제가 있다는 것을 알아 냈습니다. Sitecore는 역할에서 역할을 허용하며 그 기능은 MS ASP.NET Membership 항목 위에 구축되었습니다. "간접적 인"사용자를 포함한 역할의 모든 사용자를 얻으려면 다음 코드를 사용해야합니다.

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

이것은 간접 사용자를 포함하여 모든 사용자를 제공합니다.

0

나는 이것이 오래되었다는 것을 알고 있지만,이 동일한 문제가 발생하여 위의 해결책이 우리에게 효과가 없었습니다. Active Directory의 간접 사용자를 찾을 수 없으며 Sitecore 역할의 간접 사용자 만 발견되었습니다.

AD 모듈 역할 공급자에 대한 추가 조사는 간접 역할에 대한 코드가 있음을 나타내지 만 얻는 호출이 작동하지 않는 것으로 나타납니다. dotPeek은 사용자를 검색하는 간접적 인 역할을 유발하는 매개 변수에 대해 'false'를 명시 적으로 설정했으며 설정에서 읽지는 않았 음을 보여주었습니다.

AD 1.1 코드를 디 컴파일하여 작동 시키려면 해당 부분을 수정해야했습니다.