Я пытаюсь подключиться к локальному LDAP-серверу, который настроил с помощью Apache Directory Studio. I'm с помощью студии 2015 обновления Визуального предприятий 2 и MVC 5.Как подключиться к локальному ldap-серверу с помощью MVC 5
Этих два подхода я работаю с:
public void ldap()
{
try
{
DirectoryEntry entry = new DirectoryEntry("LDAP://localhost:10389");
DirectorySearcher mySearcher = new DirectorySearcher(entry);
var result = mySearcher.FindOne();
}
catch (System.Runtime.InteropServices.COMException)
{
System.Runtime.InteropServices.COMException exception = new System.Runtime.InteropServices.COMException();
Console.WriteLine(exception);
}
catch (InvalidOperationException)
{
InvalidOperationException InvOpEx = new InvalidOperationException();
Console.WriteLine(InvOpEx.Message);
}
catch (NotSupportedException)
{
NotSupportedException NotSuppEx = new NotSupportedException();
Console.WriteLine(NotSuppEx.Message);
}
}
После вара результата = mySearcher.FindOne() выполняются, система .Runtime.InteropServices.COMException 'в System.DirectoryServices.dll, указывая, что при вызове COM-компонента была передана ошибка HRESULT E_FAIL.
Я понятия не имею, что это значит и не нашел что-то полезное с помощью Google.
второй подход:
try
{
LdapConnection ldapConnection = new LdapConnection("LDAP://localhost:10389");
var networkCredential = new NetworkCredential("cbrunato", "c2VjcmV0", "dc=example,dc=com");
ldapConnection.SessionOptions.SecureSocketLayer = true;
ldapConnection.SessionOptions.VerifyServerCertificate += delegate { return true; };
ldapConnection.AuthType = AuthType.Negotiate;
ldapConnection.Bind(networkCredential);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
После ldapConnection.Bind (NetworkCredential) выполняется, я получаю сообщение об ошибке "сервер LDAP не доступен".
Когда я останавливаю сервер ldap и запускаю программу, я получаю те же ошибки, поэтому я думаю, что не получаю подключение к моему ldap-серверу с обоими подходами, но я не знаю, почему.
Я очень благодарен за любую помощь.
Update: Полномочия являются недействительными за исключением
Строки, используемые в качестве имени пользователя:
"uid=cbrunato"
"cn=Chuck Brunato"
"cn=Chuck Brunato,ou=Users,dc=example,dc=com"
"uid=cbrunato,cn=Chuck Brunato,ou=Users,dc=example,dc=com"
"uid=cbrunato,ou=Users,dc=example,dc=com"
E_FAIL, вероятно, является разрешение вопроса. Является ли идентификатор доступа к домену доступным? Я даже не помню, чтобы ADS разрешала интегрированную защиту, мне всегда приходилось предоставлять сетевые ресурсы. – rene
Боюсь, я не понимаю. Я должен признать, что я совершенно новый для .NET. Вы говорите, что мое приложение не имеет разрешения на подключение к LDAP-серверу? –
[Этот вопрос] (http://stackoverflow.com/questions/8700115/connecting-to-ldap-server-from-net) представляется полезным, поскольку он показывает, как предоставлять учетные данные, ответ важен, потому что вы используете ADS , Возможно, вам потребуется прочитать еще q + a на [topic] (http://stackoverflow.com/search?q=directorySearcher+networkcredential). – rene