Consultando o Active Directory com “SQL”?
-
01-07-2019 - |
Pergunta
Eu só quero saber se alguém sabe ou fez um invólucro em torno do Active Directory para poder consultá-lo facilmente em .net? Tipo como "LINQ para ActiveDirectory" ou algum SQL Dialect, ou seja, para ser capaz de fazer "SELECT DISTINCT (departamento) de / Users / SomeOU / AnotherOU" ou "user SELECT FROM domínio" ou o que quer.
Tanto quanto eu sei, é possível consulta WMI e IIS em uma "SQLesque" maneira, eu só quero saber se algo semelhante é possível para Active Directory, bem como, sem ter que aprender mais uma Query Language (LDAP)?
Solução
LINQ para Active implementos Diretório um personalizado LINQ consulta provedor que permite consultando objetos no Active Directory. Internamente, as consultas são traduzidos em filtros LDAP que são enviados para o servidor usando o System.DirectoryServices .NET Framework biblioteca.
http://www.codeplex.com/LINQtoAD
Sample (do 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();