UserPrincipal.SetPassword выдает 0x80070005 (E_ACCESSDENIED) - PullRequest
0 голосов
/ 07 августа 2020

У меня есть веб-API, который работает в пуле приложений IIS с учетной записью службы с повышенными правами. У этой учетной записи службы есть права на установку или изменение паролей пользователей в пределах указанных c подразделений в Active Directory.

Учетная запись службы API может устанавливать пароли пользователей в подразделении 1, но не может устанавливать пароли пользователей. в OU2 . Смена пароля работает нормально в обоих OU.

Снимок экрана с разрешениями сервисного аккаунта в OU2

разрешения учетной записи службы для OU в AD

Один и тот же фрагмент кода используется для установки пароля независимо от OU.

UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(adContext, username);
userPrincipal.SetPassword("somepassword");
userPrincipal.Save();

Выдается исключение

System.UnauthorizedAccessException: Access отказано. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))

...