-je obtenir des informations auprès des utilisateurs dans la base de données qui sont stockées sur Active Directory, j'ai une fonction simple à faire:CLR procédure stockée SQL pour interroger Active Directory
using (DirectoryEntry de = new DirectoryEntry("LDAP://ANYGIVENDOMAIN"))
{
using (DirectorySearcher adSearch = new DirectorySearcher(de))
{
adSearch.Filter = "(sAMAccountName=jdoe)";
SearchResult adSearchResult = adSearch.FindOne();
StringBuilder sb = new StringBuilder();
sb.AppendLine(adSearchResult.Properties["displayname"][0].ToString());
sb.AppendLine(adSearchResult.Properties["givenName"][0].ToString());
sb.AppendLine(adSearchResult.Properties["objectSid"][0].ToString());
sb.AppendLine(adSearchResult.Properties["description"][0].ToString());
sb.AppendLine(adSearchResult.Properties["objectGUID"][0].ToString());
}
}
Exécution d'un WinForm fait ce que je veux, mais dans le type de projet SQL Server, je ne peux pas ajouter l'espace de noms System.DirectoryServices aux références.
Quelqu'un sait pourquoi?
Cordialement
JE
Tout comme aparté - si je vous, j'assurez-vous de vérifier ** ** si une propriété donnée est présent ou pas; 'if (adSearchResult.Properties [" ... "]! = null) .... parce que sinon, vous obtiendrez très certainement des exceptions de pointeur NULL tôt ou tard .... –