.NET 3.5 を使用している場合、またはそれにアップグレードできる場合は、名前空間の導入によりLDAP が大幅に改善されました。System.DirectoryServices.AccountManagement
UserPrincipal
これには、よく使用される LDAP 属性のほとんどをプロパティとして提供するなどのクラスが含まれています。および QBE (Query-by-example)を使用するPrincipalSearcher
と、関心のあるユーザー (または他のオブジェクト) を非常に簡単に見つけて、ASP.NET グリッド ビューにバインドすることができます。
新しい .NET 3.5 の詳細については、MSDN Magazine の次の優れた記事を参照してください。
.NET Framework 3.5 でのディレクトリ セキュリティ プリンシパルの管理 - 2008 年 1 月号
更新: .NET 3.5 インターフェイスを使用すると、次のようなコードを記述できます。
// define the content - domain name (second param) must be NetBIOS-style,
// third parameter is the container where to create the context for
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "ITLAB", "OU=UsersStudents,DC=dc,DC=itlab,DC=edu");
// define your "prototype" for the searcher - here: you want to search for
// users which have the .Enabled property set to true; you could define additional
// requirements here
UserPrincipal qbePrototype = new UserPrincipal(ctx);
qbePrototype.Enabled = true;
// create PrincipalSearcher based on that QBE prototype
PrincipalSearcher ps = new PrincipalSearcher(qbePrototype);
// find all matching Principals - in your case, those will be of type UserPrincipal
PrincipalSearchResult<Principal> results = ps.FindAll();
results
これで、または何かに直接バインドしDataGridView
て、探している列のプロパティを選択できるはずです。
- 名 = UserPrincipal.GivenName
- 姓 = UserPrincipal.Surname
- Windows 2000 より前のログオン名 = UserPrincipal.SamAccountName
- 名前=名前
- タイプ = ?? ここで何を意味しますか??