2011-10-06 1 views
-1

MD 도메인 (MD = MyDomain)과 같은 MyDomain.com 및 Windows 로그온 도메인 이름과 같은 AD 도메인 이름이 있습니다. 어떻게하면 도메인을 이길 수 있습니다 도메인을 사용하여 AD 도메인에서 DirectoryEntry.Properties 컬렉션?어떻게 AD 도메인 이름에서 Windows 로그온 도메인 이름을 얻을 수 있습니까?

+0

여기 해결책을 찾았습니다. http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/add6bc4d-273f-495a-a7ec-ee 29b0fe34bd / –

답변

0

아마, 당신은이를 사용할 수 있습니다 : 당신은 다음 사용자 개체의 정보 (예를 들어 result.Properties [ "SAMAccountName을을"]) 얻을 수의 SearchResult 개체의 Properties 컬렉션을 사용할 수 있습니다

string username = "<username>"; 

DirectoryEntry de = new DirectoryEntry(
    "LDAP://" + ConfigurationManager.AppSettings["ADDomain"], 
    ConfigurationManager.AppSettings["ADUsername"], 
    ConfigurationManager.AppSettings["ADPassword"]); 

DirectorySearcher ds = new DirectorySearcher(de); 
ds.Filter = string.Format("samaccountname={0}", 
    (username.Split('\\').Length > 1) ? username.Split('\\')[1] : username); 

SearchResult result = ds.FindOne(); 
if (result == null) 
    throw new ArgumentException(
     string.Format("Username '{0}' does not exist in the active directory", username), "username"); 

. 몇 가지 유용한 키는 다음과 같습니다

  • 목록 항목으로 SAMAccountName (Windows 사용자 이름)
  • 목록 항목 나 displayName (이름)
  • 목록 항목 TelephoneNumber를
  • 목록 항목 메일 (이메일 주소)
  • 목록 항목 부서 (사용자가 속한 부서)