2013-09-06 38 views

Trả lời

17

Bạn có thể tìm kiếm AD của bạn với đoạn mã sau:

DirectoryEntry adEntry = null; 

    private void SetADInfoAndCredentials() 
    { 
     adEntry = new DirectoryEntry("LDAP://" + ad_textBox.Text); 
     adEntry.Username = user_textBox.Text; 
     adEntry.Password = pw_textBox.Text; 
    } 

    private void SearchForMailInAD() 
    { 
     DirectorySearcher adSearcher = new DirectorySearcher(adEntry); 
     adSearcher.Filter = ("mail=" + mail_textBox.Text); 
     SearchResultCollection coll = adSearcher.FindAll(); 
     foreach (SearchResult item in coll) 
     { 
      foundUsers_listBox.Items.Add(item.GetDirectoryEntry()); 
     } 
    } 

€: Điều này sẽ tìm kiếm các địa chỉ mail trong proxyAddresses nơi tổ chức tất cả các mail

public static SearchResultCollection FindAccountByEmail(string pEmailAddress) 
    { 
     string filter = string.Format("(proxyaddresses=SMTP:{0})", email); 

     using (DirectoryEntry gc = new DirectoryEntry("LDAP:")) 
     { 
      foreach (DirectoryEntry z in gc.Children) 
      { 
       using (DirectoryEntry root = z) 
       { 
        using (DirectorySearcher searcher = new DirectorySearcher(root, filter, new string[] { "proxyAddresses", "objectGuid", "displayName", "distinguishedName" })) 
        { 
         searcher.ReferralChasing = ReferralChasingOption.All; 
         SearchResultCollection result = searcher.FindAll(); 

         return result; 
        } 
       } 
      } 
     } 
     return null; 
    } 
+0

Cảm ơn bạn - bộ mã thứ hai hoạt động tuyệt vời . Khi nào tôi muốn sử dụng phương pháp đầu tiên (LDAP)? Và điều gì xảy ra sau LDAP: //? –

+0

Mã đầu tiên sẽ chỉ hoạt động để biết chính xác địa chỉ thư chính nào được xác định. Sau khi Ldap bạn phải đặt tên miền hoặc bộ điều khiển của bạn –

Các vấn đề liên quan