Novell LDAP C# - Novell. Каталог. Ldap - кто-либо заставил его работать?

Как видно из комментариев, похоже, что это не так, но если это проблема, связанная с разрешениями, вот пример из официального репо. Skype - это приложение для телефона, поэтому, я думаю, необходимы разрешения, связанные с телефоном и контактами.

Из OfficeDev / skype-android-app-sdk-samples































11
задан ceetheman 23 December 2008 в 20:18
поделиться

4 ответа

Я наконец нашел способ сделать эту работу.

Во-первых, сообщения тезисов помогли мне добраться на правильном пути: http://directoryprogramming.net/forums/thread/788.aspx

Во-вторых, я получил скомпилированный dll Библиотеки LDAP Novell и использовал Mono.Security.Dll.

Решение:

Я добавил эту функцию к коду

// This is the Callback handler - after "Binding" this is called
        public bool MySSLHandler(Syscert.X509Certificate certificate, int[] certificateErrors)
        {

            X509Store store = null;
            X509Stores stores = X509StoreManager.LocalMachine;
            store = stores.TrustedRoot;

            //Import the details of the certificate from the server.

            X509Certificate x509 = null;
            X509CertificateCollection coll = new X509CertificateCollection();
            byte[] data = certificate.GetRawCertData();
            if (data != null)
                x509 = new X509Certificate(data);

            //List the details of the Server

            //if (bindCount == 1)
            //{

            Response.Write("<b><u>CERTIFICATE DETAILS:</b></u> <br>");
            Response.Write("  Self Signed = " + x509.IsSelfSigned + "  X.509  version=" + x509.Version + "<br>");
            Response.Write("  Serial Number: " + CryptoConvert.ToHex(x509.SerialNumber) + "<br>");
            Response.Write("  Issuer Name:   " + x509.IssuerName.ToString() + "<br>");
            Response.Write("  Subject Name:  " + x509.SubjectName.ToString() + "<br>");
            Response.Write("  Valid From:    " + x509.ValidFrom.ToString() + "<br>");
            Response.Write("  Valid Until:   " + x509.ValidUntil.ToString() + "<br>");
            Response.Write("  Unique Hash:   " + CryptoConvert.ToHex(x509.Hash).ToString() + "<br>");
            // }

            bHowToProceed = true;
            if (bHowToProceed == true)
            {
                //Add the certificate to the store. This is \Documents and Settings\program data\.mono. . .
                if (x509 != null)
                    coll.Add(x509);
                store.Import(x509);
                if (bindCount == 1)
                    removeFlag = true;
            }

            if (bHowToProceed == false)
            {
                //Remove the certificate added from the store.

                if (removeFlag == true && bindCount > 1)
                {
                    foreach (X509Certificate xt509 in store.Certificates)
                    {
                        if (CryptoConvert.ToHex(xt509.Hash) == CryptoConvert.ToHex(x509.Hash))
                        {
                            store.Remove(x509);
                        }
                    }
                }
                Response.Write("SSL Bind Failed.");
            }
            return bHowToProceed;
        }

И я использовал его в процессе привязки

// Create Connection
                LdapConnection conn = new LdapConnection();
                conn.SecureSocketLayer = true;
                Response.Write("Connecting to:" + ldapHost);

                conn.UserDefinedServerCertValidationDelegate += new
                    CertificateValidationCallback(MySSLHandler);

                if (bHowToProceed == false)
                    conn.Disconnect();
                if (bHowToProceed == true)
                {
                    conn.Connect(ldapHost, ldapPort);
                    conn.Bind(loginDN, password);
                    Response.Write(" SSL Bind Successfull ");

                    conn.Disconnect();
                }
                quit = false;

Основные элементы используют Обработчик SSL для динамичного получения Сертификата, и использующий X509StoreManager. LocalMachine так, чтобы, когда веб-сайт выполняет свое способное, чтобы сохранить и выбрать сертификаты.

4
ответ дан 3 December 2019 в 06:48
поделиться

91, "не может соединиться". Попытайтесь вставить сервер "ldap://x.x.x.x" формат, проверить, что userDN установлен правильно (с доменом и т.д.).

Я часто использую WireShark для наблюдения то, что продолжается на сетевом уровне (он знает о протоколе LDAP).

2
ответ дан 3 December 2019 в 06:48
поделиться

После моего предыдущего сообщения - если необходимо использовать безопасное соединение, попытайтесь использовать ldaps://в качестве префикса к адресу сервера.

Если нет никакой поддержки SSL/TLS, можно попробовать это - инструкции и обертка.NET для библиотеки OpenLDAP.

Один важный момент - существует настройки для уровня безопасности TLS в OpenLDAP, поэтому если Ваш сервер LDAP самоподписал сертификат Вы или должен импортировать его на стороне клиента или установить TLS для не проверки полномочий подписания *, который менее безопасен, конечно).

1
ответ дан 3 December 2019 в 06:48
поделиться

Я думаю, что, возможно, уже предложил этот ответ кому-то еще в другом вопросе.

[OtherQuestion на LDAP] [1]

Две проблемы я думаю: 1), Какой связывают Вас, пытаются сделать? SSL? Открытый текст? Анонимный?

2) То, как это настроено на eDirectory стороне для LDAP, связывает?

Инструмент LDAP Browser, Вы обращаетесь к тому в этой ссылке? Свободный Браузер LDAP

На eDirectory стороне они могут потребовать TLS для всей коммуникации LDAP, и они могут запретить Анонимный, связывает.

Можете Вы просить, чтобы люди в другом конце включили LDAP, прослеживающий (Используя DStrace с +LDAP включенной опцией, некоторые ссылки для того, как использовать Dstrace на взгляде Novell eDirectory на: Различные типы Получения Dstrace и понимают Трассировку DS для менеджера по Идентификационным данным.)

Это обычно будет показывать сообщение об ошибке, которое просветит Вас.

Мое предположение, любой Требуют, чтобы TLS был включен, и Вы не могли бы делать, успешный SSL связывают.

Если так, попытайтесь соединиться на порте 636 с SSL, включенным, и полностью определенный DN для пользователя, в которого Вы пытаетесь войти как.

Если Вы пробуете SSL, включенным, и Вы не получаете раскрывающееся поле о принятии доверяемого certficate корня древовидного CA, то, возможно, CA или сертификат SSL TAHT, eDirectory сервер является пользователем, истекло или повреждается. (Существует любое количество причин для этого, которое может быть распространено, и взять только момент для фиксации).

Обычно в Dstrace Вы будете видеть ошибку о сертификате SSL, если будет проблема. Пример с точки зрения менеджера по Идентификационным данным Novell сертификата с истекшим сроком находится в этой статье: Сертификат Истек, А также некоторые детали о том, как исправить сертификаты.

Следующая возможность состоит в том, что DN, который Вы указываете, не совсем корректен.

Сообщите мне, нуждаетесь ли Вы в большем количестве помощи.

2
ответ дан 3 December 2019 в 06:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: