2008-09-18 10 views
6

Je me demande simplement si quelqu'un sait ou fait un wrapper autour d'Active Directory pour être capable de l'interroger facilement dans .net? Un peu comme "LINQ-ActiveDirectory" ou un dialecte SQL, c'est-à-dire être capable de faire "SELECT DISTINCT (DEPARTMENT) FROM/Users/SomeOU/AnotherOU" ou "SELECT user FROM domain" ou autre. Pour autant que je sache, il est possible d'interroger WMI et IIS de manière "SQLesque", mais je me demande si quelque chose de similaire est également possible pour Active Directory, sans avoir à apprendre un autre langage de requête (LDAP) ?Interrogation Active Directory avec "SQL"?

+0

+1 Je trouve ce poste à la place! ;) Hehehe ... –

Répondre

13

LINQ à Active Directory implémente un fournisseur de requêtes LINQ personnalisé qui permet objets Active Directory dans l'interrogation. En interne, les requêtes sont traduites en filtres LDAP qui sont envoyés au au serveur à l'aide de la bibliothèque System.DirectoryServices .NET Framework.

http://www.codeplex.com/LINQtoAD

échantillon (du site):

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

Maintenant, je me sens stupide, ne pouvait pas trouver dans Google plus tôt :-) Merci! –

+3

Cela arrive à tout le monde une fois dans un moment. La prochaine fois que quelqu'un en aura besoin, il trouvera à la place ce stackoverflow-post. – Espo

+0

+1 Excellent outil présenté ici. Merci! –

Questions connexes