Я хочу получить имя и фамилию пользователя, зарегистрированного на его машине, используя AD. Я использую следующий код:Поиск LastName и FirstName в AD
string server = ConfigurationManager.AppSettings["ActiveDirectory.Server"];
DirectoryEntry entry = new DirectoryEntry(@"LDAP://" + server);
DirectorySearcher searcher = new DirectorySearcher(entry);
User user = GetUser(entry);
searcher.Filter = "sAMAccountName=" + user.UserAD;
searcher.PropertiesToLoad.Add("memberof");
SearchResult result = searcher.FindOne();
private static User GetUser(DirectoryEntry userEntry)
{
Usuario user = new User();
string[] username = HttpContext.Current.Request.ServerVariables["AUTH_USER"].Split('\\');
//THIS IS WHAT I NEED BUT IT DOES RETURN null.
//User.Name= (string)userEntry.Properties["givenName"].Value;
//User.LastName= (string)userEntry.Properties["sn"].Value;
user.Domain = username[0];
user.UserAD = username[1];
return user;
}
Теперь я знаю searcher.PropertiesToLoad
есть [memberof]
и [adspath]
, последняя дает мне имя и фамилию, разделенную запятой, что-то вроде CN="gates, billy"
, но я не хочу использовать подстроки и index, есть ли какое-либо свойство, как [firstName]
, [lastName]
в списке свойств?
Я сделал поиск, что DirectoryEntry
имеют свойство givenName
и sn
, но это возвращает null