J'utilise ODBC pour extraire des données du répertoire actif afin d'obtenir l'adresse e-mail d'un nom d'utilisateur particulier en utilisant le code ci-dessous.C# utiliser ActiveDir pour obtenir des noms sous un organigramme de gestionnaire?
comment puis-je utiliser AD pour tirer tous les noms d'utilisateur de peolel qui rapportent dans un gestionnaire prticular?
je peux transversal l'organigramme dans Outlook si im pensant que je peux faire la même chose en utilisant AD ...
idées?
System.Data.OleDb.OleDbConnection con;
System.Data.OleDb.OleDbCommand cmd;
con = new System.Data.OleDb.OleDbConnection("Provider=ADsDSOObject;dsn=Active Directory Provider");
con.Open();
//Create a command object on this connection
string strSQL = "SELECT mail FROM 'LDAP://DC=amrs,DC=win,DC=ml,dc=COM' WHERE samaccountname = '" + UserName.Replace(@"AMRS\", "") + "'";
cmd = new System.Data.OleDb.OleDbCommand(strSQL, con);
try
{
return Convert.ToString ( cmd.ExecuteScalar());
}
catch (System.Data.OleDb.OleDbException exc)
{
return "ERROR: " + exc.ToString();
}
finally
{
con.Close();
}
est la façon dont je tire les données de l'annonce dans mon exemple de code utilisable pour quelque chose comme ça? Je pense qu'il y a d'autres façons .net de se connecter à AD qui pourrait être mieux ??? – kacalapy
Oui, la méthode OldDb fonctionnerait probablement. Vous avez probablement besoin de sélectionner le gestionnaire de .... (puis de parcourir récursivement la chaîne). Je mis à jour ma réponse d'ajouter des informations sur les services d'annuaire – Lareau
quand je lance SELECT top 50 \t gestionnaire DE OPENQUERY (ADSI, ' gestionnaire SELECT FROM '' LDAP: // DC = amrs, DC = victoire, DC = ml , dc = COM '' WHERE objectClass = '' user '' et objectClass <> '' ordinateur '' ') AS tblADSI où gestionnaire n'est pas nul je reçois "CN = Parlapiano \, Jim, OU = Utilisateurs, OU = Technologie, OU = IDS, DC = amrs, DC = win, DC = ml, DC = com "pas seulement le nom d'utilisateur du gestionnaire. Quoi de neuf avec ça? – kacalapy