質問

Active Directory を .net で簡単にクエリできるようにするためのラッパーを知っている人、またはラッパーを作成した人はいるでしょうか?「LINQ-to-ActiveDirectory」または SQL の方言のようなものです。「SELECT DISTINCT(DEPARTMENT) FROM /Users/SomeOU/AnotherOU」または「SELECT user FROM domain」などを実行できるようにします。

私の知る限り、「SQLesque」方法で WMI と IIS にクエリを実行することは可能ですが、別のクエリ言語 (LDAP) を学習することなく、Active Directory でも同様のことが可能ではないでしょうか?

役に立ちましたか?

解決

LINQからActive Directoryは、Active Directoryでオブジェクトをクエリすることを可能にするカスタムLINQクエリプロバイダーを実装します。内部的には、クエリはLDAPフィルターに翻訳され、System.DirectoryServices .NET Frameworkライブラリを使用してサーバーに送信されます。

http://www.codeplex.com/LINQtoAD

サンプル (サイトから):

// NOTE: Entity type definition "User" omitted in sample - see samples in release.

var users = new DirectorySource<User>(ROOT, SearchScope.Subtree);
users.Log = Console.Out;

var res = from usr in users
          where usr.FirstName.StartsWith("B") && usr.Office == "2525"
          select new { Name = usr.FirstName + " " + usr.LastName, usr.Office, usr.LogonCount };

foreach (var u in res)
{
    Console.WriteLine(u);
    u.Office = "5252";
    u.SetPassword(pwd);
}

users.Update();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top