2014-12-02 71 views
1

我有一個代碼給我一個在Active Directory中更改的用戶列表。它使用DirSync控制。當我選擇獲取屬性的完整列表時,我只收到以下內容:C#Active Directory DirSync。是否有可能獲得專有名稱屬性?

objectclass: top 
objectclass: person 
objectclass: organizationalPerson 
objectclass: user 
whencreated: 20141202165637.0Z 
name: gfdgfgfd 
objectsid: System.Byte[] 
countrycode: 0 
primarygroupid: 513 
samaccounttype: 805306368 
useraccountcontrol: 66048 
pwdlastset: 130620129983259471 
parentguid: System.Byte[] 
codepage: 0 
objectcategory: CN=Person,CN=Schema,CN=Configuration,DC=test,DC=com 
userprincipalname: [email protected] 
displayname: gfdgfgfd 
accountexpires: 9223372036854775807 
ntsecuritydescriptor: System.Byte[] 
givenname: gfdgfgfd 
instancetype: 4 
samaccountname: gfdgdf 
objectguid: System.Byte[] 

我還需要獲取專有名稱。是否有可能

這是我的代碼:

string str_dcName = "xxxxxxxx"; 
System.DirectoryServices.DirectoryEntry rootDSE = new System.DirectoryServices.DirectoryEntry("LDAP://rootDSE"); 
System.Net.NetworkCredential cr = new System.Net.NetworkCredential(@"User", "Pass", "test.com"); 
LdapConnection connection = new LdapConnection(str_dcName); 
connection.Credential = cr; 
connection.Bind(); 

SearchRequest request = new SearchRequest("DC=test,DC=com", "(|(objectClass=organizationalUnit)(isDeleted=TRUE)(objectClass=user)(objectcategory=person))", SearchScope.Subtree, null); 

DirSyncRequestControl dirSyncRC = new DirSyncRequestControl(cookie, DirectorySynchronizationOptions.IncrementalValues, Int32.MaxValue); 
request.Controls.Add(dirSyncRC); 

bool bMoreData = true; 
SearchResponse searchResponse = (SearchResponse)connection.SendRequest(request); 

謝謝!

回答

2

好吧,過了一會兒,我發現我錯過了一些東西。 在SearchResponse所有條目有:

  • 屬性
  • 控制
  • 專有名稱

讓尊貴的名稱不是屬性的內部。

while (bMoreData) 
    foreach (SearchResultEntry entry in searchResponse.Entries) 
     Console.WriteLine(entry.DistinguishedName); 
相關問題