2

AD にクエリを実行してユーザー データを取得しようとしています。

クエリは正常に機能しますが、GetDirectoryEntry から返されたプロパティを列挙すると、Active Directory エクスプローラーに表示されているすべての属性を表示できません。

以下のコード スニペット:

offEntry = pResult.GetDirectoryEntry();
foreach (PropertyValueCollection o in offEntry.Properties)
{
    Debug.Print(o.PropertyName + " = " + o.Value.ToString());
}

「displayName」や「SAMAccountName」などの属性が表示されますが、実際に必要な属性 (「postalCode」、「streetAddress」など) が表示されません。

この特定の問題の解決策を探してみましたが、行き止まりになりました。私は何が欠けていますか???

よろしくピーター

4

2 に答える 2

1

このようなサーチャークラスを使用できるはずです。

DirectorySearcher search = new DirectorySearcher(entry);
                search.Filter = "(sAMAccountName=" + userAccount + ")";
                search.PropertiesToLoad.Add("mail");
                SearchResult result = search.FindOne();

次に、行を介して必要なプロパティをロードします

            search.PropertiesToLoad.Add("mail");

次にSearchResult、プロパティを読み取ることができます

于 2012-07-06T13:54:29.417 に答える
1

これは古いですが、他の人に役立つかもしれません:

  1. DirectorySearcher の PropertiesToLoad を(.add なし) のままにすると、すべてのプロパティに既に値が含まれていることになります
  2. SearchResult には、実際の DirectoryEntry を返すメソッドがあります: result.GetDirectoryEntry()。どちら (私はまだそれを防止しようとしています) は、値が入力されたすべてのプロパティをロードします。
  3. DirectoryEntry には、まだ入力されていないプロパティを入力するための「InvokeSet」メソッドがあり、その後、それらは返されます。(「InvokeGet」メソッドもありますが、試したことはありませんが、空のプロパティを取得するのに役立つかもしれません)
于 2018-06-04T09:19:44.017 に答える