2012-05-02 18 views
0

LDAPに接続していて、ユーザータイプのclassobjectしか取得できません。並べ替えを行うときに識別名を取得するだけです(並べ替えの行にコメントします)結果はちょうど良い、ユーザーの数は13です。私はそれらをすべて印刷することができますが、昇順に持っていないので、私は、distinguishedNameに基づいて並べ替えを行った、私はコードにこれらの行を追加するsearchResultsの空のコレクションを私に与えてください。DistinguishedNameに基づいて並べ替えを行うとエラーが発生する

私はソートを行うとデータが消えてしまい、データを並べ替えるとデータが消えてしまいます。ソートには何が間違っていますか?

DirectoryEntry entry = new DirectoryEntry(_path, username, 
DirectorySearcher mySearcher = new DirectorySearcher(entry); 
mySearcher.Filter = ("(objectClass=user)"); 
SortOption option = new SortOption("distinguishedName", System.DirectoryServices.SortDirection.Ascending); 
mySearcher.Sort = option; 
DataSet ds = new DataSet(); 
DataTable dtUsers = new DataTable("Users"); 
dtUsers.Columns.Add("distinguishedName"); 
SearchResultCollection ss = mySearcher.FindAll(); 
SearchResult a = ss[0]; 

答えて

0

このようなデータビュー何かで並べ替えを行います

DataTable dtUsers = new DataTable("Users"); 
dtUsers.Columns.Add("distinguishedName"); 
DataView view = dtUsers.DefaultView; 
view.Sort = "distinguishedName"; 
+1

LDAP属性名では大文字と小文字は区別されません。 – EJP

+0

EJP-そうです。プロパティが "DirectoryEntry"にあるのかLDAPにあるのか不思議に思っていました。 – Crilledk

+0

質問が分かりません。すべてのディレクトリエントリの属性はすべてLDAPにあります。 – EJP

0

FWIW、通常、サーバー側のソートないことであろうお勧めします、私。クライアントは、並べ替えの負荷をDCから簡単にソートして保持することができます。あなたが本当にサーバをソートする必要がある場合がいくつかありますが、それを避けることができれば、私はそうします。あなたの管理者はあなたに感謝します。

関連する問題