Я думаю, что ваша ошибка в том, что вы ищете местоположение, но устанавливаете имя пользователя в качестве значения ...
Вы должны найти имя пользователя и указать местоположение этого пользователя:
public static string GetUserLocation(string userName)
{
string userLoc = "";
DirectoryEntry entry = new DirectoryEntry("LDAP://FTLAD04.corp.myDomain.com");
DirectorySearcher dSearch = new DirectorySearcher(entry);
dSearch.Filter = "(&(objectClass=user)(samAccountName=" + userName + "))";
dSearch.PropertiesToLoad.Add("l");
SearchResult result = dSearch.FindOne();
if(result != null)
{
if(result.Properties["l"] != null && result.Properties["l"].Count > 0)
{
string location = result.Properties["l"][0].ToString();
}
}
return userLoc;
}
В AD город пользователя (который вы вводите в инструменте Active Directory - пользователи и компьютеры) хранится в атрибуте l
DirectoryEntry
.
Полный список всех атрибутов и того, как они отображаются из инструмента ADU & C в фактические объекты и атрибуты LDAP, см. Веб-сайт Роберта Мюллера