Una query di Active Directory con “SQL”?
-
01-07-2019 - |
Domanda
Mi chiedo solo se qualcuno sa o fatto un wrapper di Active Directory per essere in grado di eseguire una query in .net?Un po ' come "LINQ-to-ActiveDirectory" o qualche Dialetto SQL, cioèper essere in grado di fare "SELECT DISTINCT(DIPARTIMENTO) DA /Users/SomeOU/AnotherOU" o "SELEZIONARE l'utente DA un dominio" o qualsiasi altra cosa.
Per quanto ne so, è possibile eseguire una query WMI e IIS in un "SQLesque" modo, mi chiedo solo se qualcosa di simile è possibile per Active Directory, senza dover imparare ancora un altro Linguaggio di Query LDAP ()?
Soluzione
LINQ to Active Directory implementa un custom query LINQ provider che permette interrogare gli oggetti in Active Directory.Internamente, le query vengono tradotti in LDAP filtri che vengono inviati a il server utilizzando il Sistema.DirectoryServices .NET Quadro biblioteca.
http://www.codeplex.com/LINQtoAD
Campione (dal sito):
// 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();