2

DirectorySearcher.FindOne()メソッドを使用しています。

MobileActive Directory ユーザー プロパティで番号を指定しました。私の検索フィルターは次のようになります

(&(ObjectClass=User)(mobile=+11111111111))

このフィルターを使用すると、適切なユーザーを取得できます。

AD ユーザー プロパティで Fax 番号も指定しましたがSearchResult、Fax プロパティが含まれていません。実際SearchResultには 1 つのプロパティしか含まれていませんが、FAX 番号を含むすべてのユーザー プロパティが返されることを期待しています。

ファックス番号が返されるようにクエリを変更する必要がありますか? AD ユーザーまたは LDAP サーバーの変更が必要になる可能性はありますか?

4

1 に答える 1

5

を使用する場合、コレクションを使用して、DirectorySearcherどのプロパティを含めるかを定義できます。何も指定しない場合は、LDAP の識別名のみが取得されます。SearchResultPropertiesToLoad

だから、次のようなことを試してください:

DirectoryEntry root = new DirectoryEntry("LDAP://-your-base-LDAP-path-here-");

DirectorySearcher searcher = new DirectorySearcher(root);
searcher.Filter = "(&(ObjectClass=User)(mobile=+11111111111))";

// DEFINE what properties you need !
searcher.PropertiesToLoad.Add("Mobile");
searcher.PropertiesToLoad.Add("Fax");

SearchResult result = searcher.FindOne();

if (result != null)
{
   if (result.Properties["Fax"] != null)
   {
      string fax = result.Properties["Fax"][0].ToString();
   }

   if (result.Properties["Mobile"] != null)
   {
      string mobile = result.Properties["Mobile"][0].ToString();
   }
}
于 2013-08-08T16:01:55.057 に答える