C# LDAP выбрасывает SetPassword RPC-сервер недоступен

Я пытаюсь создать нового пользователя -> установить пароль и включить учетную запись.

Ранее я использовал 1 единственный объект, но после просмотра нескольких сообщений я решил использовать "использование" для 3 различных операций.

        string strDisplayName = txtFirstName.Text + " " + txtLastName.Text;
        string strUser = txtLoginName.Text;

        string pw = "pass@123";


        using (var objADAM = new DirectoryEntry("LDAP://" + adlink + "/CN=Users,DC=SS,DC=COM", "ss\\luser", "pass@123", AuthenticationTypes.Secure))
        {


            const long ADS_OPTION_PASSWORD_PORTNUMBER = 6;
            const long ADS_OPTION_PASSWORD_METHOD = 7;

            const int ADS_PASSWORD_ENCODE_CLEAR = 1;
            string strPort = "389";
            int intPort = Int32.Parse(strPort);

            using (var objUser = objADAM.Children.Add("CN=" + strUser, "user"))
            {
                objUser.Properties["sAMAccountName"].Add(strUser);
                objUser.CommitChanges();
            }
        }

        using (var user = new DirectoryEntry("LDAP://" + adlink + "/CN=" + strUser + ",CN=Users,DC=SS,DC=COM", "ss\\rluser", "pass@123"))
        {
            user.Invoke("SetPassword", new object[] { "password" });
            user.CommitChanges();
        }



        using (var user = new DirectoryEntry("LDAP://" + adlink + "/CN=" + strUser + ",CN=Users,DC=SS,DC=COM", "ss\\rluser", "pass@123"))
        {

            //Enable account and change password on first logon flag
            user.Properties["userAccountControl"].Value = 0x200;
            user.Properties["pwdLastSet"].Value = 0;
            user.CommitChanges();

        }

Должен отметить, что я нахожусь за пределами домианы и пытаюсь подключиться к удаленному AD в другом домене. Полномочия пройдены, однако АДМИН

Создание пользователя происходит гладко (после некоторых сбоев с открытием порта и подключениями LDAP), но проблема возникает, когда вызывается invoke ->setpassword.

Ошибка:"сервер RPC недоступен", просто чтобы убедиться, что я не делаю что-то не так в своем коде, я скачал инструмент администратора LDAP и попытался сбросить пароль существующего пользователя -> та же ошибка

шаги -проверено, что служба RPC работает -открытые порты RPC -135, бла-бла.. в основном каждый порт, который нужно открыть:|

любая помощь приветствуется.

Спасибо раджат

1 ответ

Например:

            DirectoryEntry de = new DirectoryEntry();
            de.Path = "LDAP://dnsname.domain.com:389/OU=Companies;

Microsoft рекомендует доступ с использованием DNS. если компьютер, к которому вы обращаетесь, подключен к другому домену, вы должны указать его как "ip dnsname" в файле hosts в каталоге "C:\Windows\System32\drivers\etc ".

Использование adlink является строковым доменом, потому что метод AD Invoke использует имя домена: "abc.com"

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