2008-09-18 37 views
6

Tôi chỉ tự hỏi nếu có ai biết hoặc thực hiện một wrapper quanh Active Directory để có thể dễ dàng truy vấn nó trong .net? Loại giống như "LINQ-to-ActiveDirectory" hoặc một số phương ngữ SQL, tức là để có thể thực hiện "CHỌN DISTINCT (DEPARTMENT) FROM/Users/SomeOU/AnotherOU" hoặc "SELECT user FROM domain" hoặc bất kỳ thứ gì. Theo như tôi biết, có thể truy vấn WMI và IIS theo cách "SQLesque", tôi tự hỏi liệu có thể tương tự như vậy cho Active Directory, mà không cần phải tìm hiểu thêm về Ngôn ngữ truy vấn (LDAP) hay không. ?Truy vấn Active Directory bằng "SQL"?

+0

+1 Tôi thấy bài này để thay thế! ;) Hehehe ... –

Trả lời

13

LINQ to Active Directory thực hiện một nhà cung cấp truy vấn LINQ tùy chỉnh mà cho phép đối tượng truy vấn trong Active Directory. Trong nội bộ, các truy vấn được dịch thành các bộ lọc LDAP được gửi đến máy chủ bằng cách sử dụng thư viện Framework System.DirectoryServices .NET .

http://www.codeplex.com/LINQtoAD

mẫu (từ trang web):

// 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

Bây giờ tôi cảm thấy ngu ngốc, không thể tìm thấy điều đó trong Google trước đó :-) Cảm ơn! –

+3

Điều đó xảy ra với mọi người một lần trong tôi. Lần tới khi ai đó cần điều này, họ sẽ tìm thấy bài đăng trên stackoverflow này. – Espo

+0

+1 Công cụ tuyệt vời được giới thiệu ở đó. Cảm ơn! –

Các vấn đề liên quan