2008-09-18 108 views
6

我只是想知道是否有人知道或圍繞Active Directory做了一個包裝以便能夠在.net中輕鬆查詢它?有點像「LINQ-to-ActiveDirectory」或某些SQL Dialect,即可以執行「SELECT DISTINCT(DEPARTMENT)FROM/Users/SomeOU/AnotherOU」或「SELECT user FROM domain」等等。用「SQL」查詢Active Directory?

據我所知,可以以「SQLesque」的方式查詢WMI和IIS,我只是想知道是否有類似的東西可以用於Active Directory,而不必學習另一種查詢語言(LDAP) ?

+0

+1我發現這個職位,而不是! ;)Hehehe ... – 2010-02-25 17:11:55

回答

13

LINQ到Active Directory實現 自定義的LINQ查詢提供,允許在Active Directory中 查詢對象。 在內部,查詢被翻譯爲LDAP過濾器,它被髮送到 服務器使用 System.DirectoryServices .NET 框架庫。

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(); 
+1

現在我覺得很愚蠢,在Google早些時候找不到:-)謝謝! – 2008-09-18 08:00:54

相關問題