Наличие:
Программа где происходит авторизация согласно текущего пользователя ПК авторизованного в домене
bis.ural.ru
- функция
/// <summary>
/// Вывод ФИО из Active Directory
/// </summary>
/// <param name="uLogin">Имя пользователя</param>
private string getUser(string uLogin)
{
string filter = string.Format("(&(ObjectClass={0})(sAMAccountName={1}))", "person", uLogin);
string domain = "bis.ural.ru";
string[] properties = new string[] { "fullname" };
DirectoryEntry adRoot = new DirectoryEntry("LDAP://" + domain, null, null, AuthenticationTypes.Secure);
DirectorySearcher searcher = new DirectorySearcher(adRoot);
searcher.SearchScope = SearchScope.Subtree;
searcher.ReferralChasing = ReferralChasingOption.All;
searcher.PropertiesToLoad.AddRange(properties);
searcher.Filter = filter;
SearchResult result = searcher.FindOne();
DirectoryEntry directoryEntry = result.GetDirectoryEntry();
string displayName = directoryEntry.Properties["displayName"][0].ToString();
//MessageBox.Show(displayName);
return displayName;
}
-Вызываем:
string User_domain = getUser(Environment.UserName.ToString());
Проблема
При работе зависает на строке
SearchResult result = searcher.FindOne();
После 2-5 сек. программа пропускает данную функцию и продолжает работать.
В чем проблема понять не могу. Подскажите как исправить данную ситуацию или подскажите другой метод получения данных из AD