Я пытаюсь создать нового пользователя -> установить пароль и включить учетную запись.
раньше я использовал 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 в другом домене. Однако переданы учетные данные ADMIN.
Создание пользователя проходит гладко (после некоторых заминок с открытием порта и соединениями LDAP), но проблема возникает при вызове invoke ->setpassword.
Ошибка: «сервер RPC недоступен», просто чтобы убедиться, что я не делаю что-то неправильно в своем коде, я загрузил инструмент администрирования LDAP и попытался сбросить пароль существующего пользователя -> та же ошибка
шаги -проверил запущенную службу RPC -открыл порты RPC -135, бла-бла... в основном каждый порт нужно открыть :|
любая помощь приветствуется.
Спасибо, Раджат.