#region 根據當前登錄域賬號 獲取AD用戶姓名和所在OU目錄 /// <summary> /// 根據當前登錄域賬號 獲取AD用戶姓名和所在OU目錄 /// </summary> /// <param name="searchUser">要搜索的當前用戶名</param> /// <param name="paths">out返回該用戶所在OU目錄</param> /// <param name="userName">out 返回該用戶的姓名</param> private static void GetADUserNameAndPaths(string searchUser, out List<string> paths, out string userName) { DirectoryEntry entry = null; string name = "*"; List<string> directorys = new List<string>(); try { //讀取配置文件...連接登錄域服務器 //"LDAP://10.2.17.*" 域服務器地址 //登錄名 //密碼 entry =// new DirectoryEntry("LDAP://10.2.17.*", "zhuanghao", "123456", AuthenticationTypes.Secure); new DirectoryEntry("LDAP://10.2.17.*", "Administrator", "111aaa...", AuthenticationTypes.Secure); if (entry != null) { DirectorySearcher mySearcher = new DirectorySearcher(entry); mySearcher.Filter = ("(&(objectClass=user)(anr=" + searchUser + "))"); // ("(&(objectClass=organizationalUnit)(OU=電力技術部))"); SearchResult searchResult = mySearcher.FindOne(); if (searchResult != null) { string path = searchResult.Path; string[] splits = path.Split(new char[] { ',' }); for (int i = splits.Count() - 1; i >= 0; i--) { if (splits[i].Contains("CN=")) { name = splits[i].Substring(splits[i].IndexOf('=') + 1); } if (splits[i].Contains("OU=")) { directorys.Add(splits[i].Substring(splits[i].IndexOf('=') + 1)); } } //string xing = (string)searchResult.Properties["sn"][0]; //string ming = (string)searchResult.Properties["givenname"][0]; //string name = xing + ming; } } } catch (Exception ex) { throw ex; } finally { //釋放資源 entry.Close(); entry.Dispose(); } paths = directorys; userName = name; } #endregion
參考:::::http://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#19
http://82831221.blog.163.com/blog/static/4716957820118162045169/
http://www.cnblogs.com/jamsewang/archive/2011/11/03/2234555.html