Я создаю модуль управления пользователями приложения, которое будет в основном аутентифицировать учетные данные пользователя на основе данных регистрации в домене. Аутентификация - это не проблема, проблема в том, что мне нужно получить этого конкретного пользователя.Доступ к Active Directory для получения диспетчера пользователя в asp.net
Я использую следующий метод, чтобы получить свойство «Менеджер» пользователя:
DirectoryEntry de = new DirectoryEntry(path, user, pass, AuthenticationTypes.Secure);
DirectorySearcher ds = new DirectorySearcher();
ds.SearchRoot = new DirectoryEntry("LDAP://xyzDomain", "UserName", "pwd");
ds.Filter = "(|(&(objectCategory=person)(objectClass=user)(mailnickname=*domainalias*)))";
//ds.PropertyNamesOnly = true;
ds.PropertiesToLoad.Add("manager");
List<string> users = new List<string>();
string s = "undefined";
foreach (SearchResult sr in ds.FindAll())
{
DirectoryEntry dee = sr.GetDirectoryEntry();
s = (string)dee.Properties[""].Value ?? "<undefined>";
users.Add(s);
}
Это возвращает мне детали диспетчера таким образом:
CN=First LastName,OU=Managers,OU=Engineering,OU=Central,OU=Something,DC=XYZ,DC=XYZ,DC=XYZRE
Что я делаю используйте строковые манипуляции для извлечения CN, а затем запустите запрос на этом CN, чтобы найти сведения о менеджере. Однако проблема в том, что CN здесь не уникален. Могут быть два или более человека с тем же именем. В основном мне нужен метод, который возвращает мне менеджера ALIAS пользователя (а не CN или что-то еще).
Пожалуйста, помогите нам в этом, было бы весьма полезно. Открыта для предложений. Большое спасибо