Подключитесь к eDirectory, используя учетные данные приложения. Затем аутентифицируйте пользователя

Мне нужно подключиться к NetIQ eDirectory с помощью.NET & C#. Соединение должно быть открыто с использованием учетных данных приложения. После того, как соединение открыто, мне нужно проверить учетные данные пользователя с правами учетных данных приложения, используя метод, аналогичный S.DS.AccountManagement.

        using (var context = new PrincipalContext(ContextType.Domain, path, appUserDn, appPassword))
        {
            //Username and password for authentication.
            var valid = context.ValidateCredentials(userDn, password);
        }

Я пробовал No vell.Directory.Ldap, S.DS.DirectoryEntry и S.DS.AccountManagement. Последний требует AD и не применяется.

Протестируйте с использованием No vell.Directory.Ldap..

        using (var cn = new LdapConnection())
        {
            cn.Connect(server, int.Parse(port));
            cn.Bind(appUserDn, appPassword); //throws exception if invalid credentials..
            var passwordAttr = new LdapAttribute("userPassword", password);
            cn.Compare(userDn, passwordAttr); // Only compares password, so no locked account check, etc.
        }

Мой текущий прототип использует S.DS.Protocols.

        var networkCredential = new NetworkCredential(
            appUserDn,
            appPassword);

        using (proto.LdapConnection cn = new proto.LdapConnection(new proto.LdapDirectoryIdentifier(server, int.Parse(port)), networkCredential, proto.AuthType.Basic))
        {
            cn.Bind();

            /// Next validate user credentials..

        }

Я не могу найти способ проверить учетные данные пользователя, кроме переназначения NetworkCrentials и повторной привязки, используя имя пользователя и пароль. Как мне поступить?

1 ответ

Оказывается, наш клиент ошибся. Правильный способ - это связать соединение напрямую с учетными данными отдельного пользователя, как я продемонстрировал в примере Novell.Directory.Ldap.

На форуме NetIQ было сообщение о выполнении сценария оболочки, но я не получил его.

Другие вопросы по тегам