Ich möchte den Vornamen und Nachnamen des Benutzers, der in seinem Computer mit AD angemeldet ist abrufen. Ich verwende den folgenden Code ein:Suche Nachname und Vorname in 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;
}
Nun, ich weiß searcher.PropertiesToLoad
habe einen [memberof]
und [adspath]
, die letzte gibt mir den Vor- und Nachnamen mit einem Komma getrennt, so etwas wie CN="gates, billy"
aber ich mag nicht Strings verwenden und index, gibt es irgendeine Eigenschaft wie [firstName]
, [lastName]
in den Listeneigenschaften?
Ich suche tat DirectoryEntry
eine Eigenschaft haben givenName
und sn
aber kehrt genannt null