2008-09-18 77 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

相关问题