Я построил тестовый сервер Active Directory в Windows 2008, а также запускаю на нем DNS-сервер.На моем клиентском компьютере, на котором выполняется приложение C #, я могу аутентифицировать пользователя на сервере Active Directory, используя следующую функцию:
public static UserPrincipal GetUserPrincipal(string usrName,string pswd,string domainName)
{
UserPrincipal usr;
PrincipalContext ad;
// Enter Active Directory settings
ad = new PrincipalContext(ContextType.Domain, domainName,usrName,pswd);
//search user
usr = new UserPrincipal(ad);
usr.SamAccountName = usrName;
PrincipalSearcher search = new PrincipalSearcher(usr);
usr = (UserPrincipal)search.FindOne();
search.Dispose();
return usr;
}
В отдельной логике я пытался получить пользователя обратно с сервера, используяимя пользователя.Я использовал следующие функции:
public static DirectoryEntry CreateDirectoryEntry()
{
// create AD connection
DirectoryEntry de = new DirectoryEntry("LDAP://CN=Users,DC=rootforest,DC=com","LDAP","password");
de.AuthenticationType = AuthenticationTypes.Secure;
return de;
}
public static ResultPropertyCollection GetUserProperty(string domainName, string usrName)
{
DirectoryEntry de = CreateDirectoryEntry();
DirectorySearcher deSearch = new DirectorySearcher();
deSearch.SearchRoot = de;
deSearch.Filter = "(SamAccountName=" + usrName + ")";
SearchResult results = deSearch.FindOne();
return null;
}
Однако я не получил ответа от сервера LDAP вообще, даже не исключение.Я пропускаю определенные настройки на сервере LDAP, любой из вас может увидеть дефект в моем коде (пожалуйста, не обращайте внимания на значения жесткого кода, я тестировал этот код).
Как часть моего устранения неполадок, Я подтвердил, что могу пинговать до rootforest.com с клиентского компьютера.Я подтвердил, что пользователь со свойством samaccountname "LDAP" существует.Мой путь кажется правильным, потому что когда я захожу на сервер LDAP и набираю:
dsquery user -name LDAP*
, я получаю следующее:
CN=LDAP L. LDAP,CN=Users,DC=rootforest,DC=com
Любая помощь будет принята с благодарностью, яЯ провел большую часть моего дня в поисках неисправностей и изучении этого маленького жучка, и я думаю, что это может быть что-то маленькое, что я упустил из виду.