2012-07-02 4 views
1

조직에 두 개의 도메인이있는 포리스트가 있다고 가정합니다. 내 경우에는 각 도메인이 서버에 정의되어 있으므로 두 개의 도메인 컨트롤러가 있습니다.다중 도메인 환경에서 사용자에 대한 그룹을 나열하는 방법

DOMAIN1 
    group1 
    user1 
DOMAIN2 
    group2 
    user2 

group1 members: user1, user2 
group2 members: user1, user2 

그룹을 나열하는 방법이 사용자 1 도메인 DOMAIN2에있는 컴퓨터에서에 속하는 것이 있습니까? C# 또는 WinAPI를 사용하는 것이 유효합니다.


편집 :이 도메인 DOMAIN2에 속한 컴퓨터에서 사용자 1의 그룹을로드하기 위해 실행 때 작동하지 않기 때문에는 WinAPI를 기능 NetUserGetGroups 나를 위해 작동하지 않습니다.

내가 크로스 도메인 해결 할 수 LookupAccountName 유사한 필요 : 이름이 로컬 시스템에 해결할 수없는 경우

을,이 기능은 에 의해 신뢰할 수있는 도메인 컨트롤러를 사용하여 이름을 해결하기 위해 노력할 것입니다 로컬 시스템.

+0

NetUserGetGroups가 작동하면 DOMAIN1의 도메인 컨트롤러를 대상 컴퓨터로 지정하기 만하면됩니다. NetGetDCName을 사용하여 적합한 DC를 찾을 수 있습니다. 그렇지 않으면 Active Directory를 명시 적으로 쿼리해야 할 수 있습니다. 몇 가지 옵션을 보려면 http://msdn.microsoft.com/en-us/library/windows/desktop/ee663271%28v=vs.85%29.aspx를 참조하십시오. 개인적으로는 LDAP API를 사용하여 단일 도메인 컨텍스트에서만 이러한 종류의 작업에 좋은 영향을 미쳤습니다. –

답변

0

.NET 4.0을 사용하는 경우 System.DirectoryServices.AccountManagement 네임 스페이스가 도움이 될 수 있습니다. PrincipalContext을 사용하여 도메인에 대한 연결을 만들고 UserPrincipal을 사용하여 사용자를 얻은 다음 GetGroups 메서드를 호출합니다. 적절한 권한을 가지고 있으면 필요한 모든 도메인에서이 작업을 수행 할 수 있다고 생각합니다. 이 코드 프로젝트 article은 몇 가지 예를 보여줍니다.