2011-08-11 3 views
2

나는 Active Directory 도메인의 DNS 이름을 가지고 있으며이 도메인에 대해 도메인 sid를 얻고 싶습니다. 어떻게해야합니까?도메인 DNS 이름에서 도메인 sid를 얻는 방법은 무엇입니까?

var domainContext = 
    new DirectoryContext(DirectoryContextType.Domain, domainDnsName); 
var domain = Domain.GetDomain(domainContext); 
var dc = domain.DomainControllers.OfType<DomainController>().FirstOrDefault(); 

하지만 (또는 어쩌면 내가 잘못된 경로 다음 해요) 여기에서 갈 곳 조금 붙어 :

는 이미 다음 있습니다. 당신이 원하는

답변

5

이 같은 것입니다 : 작동하지 않습니다

DirectoryEntry domainEntry = domain.GetDirectoryEntry(); 
byte[] domainSid = domainEntry.Properties["objectSID"].Value as byte[]; 
SecurityIdentifier strongDomainSid = new SecurityIdentifier(domainSid, 0); 
+0

:'Domain'이 방법이없는'GetDirectoryEntry()'. 'DomainController'는 그렇지만'objectSid'가없는'DirectoryEntry'를 반환합니다 ... –

+0

MSDN이 말합니다 - http://msdn.microsoft.com/en-us/library/system.directoryservices.activedirectory.domain. aspx. 어떤 이유에서 건 아니라면, 자신을 얻는 것은 사소한 일입니다. 도메인의 DN (예 : var de = new DirectoryEntry ("LDAP : // dc = mydomain, dc = com"))에 대한 새 DirectoryEntry를 만듭니다. 도메인 개체에서 DN을 가져올 수 있어야합니다. –

+0

흠, 그 중 하나를 간과 ... 만약 기본 명명 컨텍스트 objectSID있다. 확실하지 sofar! –

관련 문제