Получение ошибки при изменении пароля с помощью System.DirectoryServices - PullRequest
0 голосов
/ 18 января 2012

У меня развернут веб-сервис на одном из серверов, который внутренне использует System.DirectoryServices для изменения пароля с помощью следующего кода:

            DirectoryEntry obDirectoryEntry = GetCurrentUserDirectoryEntry();
            obDirectoryEntry.Invoke("ChangePassword", new object[] { sOldPassword, newPassword });
            obDirectoryEntry.CommitChanges();
            obDirectoryEntry.Close();

Этот веб-сервис работает нормально при попадании из определенного другого домена, но завершается ошибкой, когда при обращении из какого-то другого:

Не удалось прочитать информацию о конфигурации с контроллера домена, так как машина недоступна или доступ запрещен.

Что может быть причиной этого? И что такое обходной путь?

Большое спасибо, Ishan

1 Ответ

0 голосов
/ 18 января 2012

Требуется больше информации о конкретной настройке сети, но для обхода этой проблемы можно указать работающий контроллер домена.

В вашем методе GetCurrentUserDirectoryEntry() вы можете использовать перегрузку:

var user = new DirectoryEntry("LDAP://WorkingDomainController", ...);

См .: http://www.codeproject.com/KB/system/everythingInAD.aspx#7

...