AccessDenied при использовании метода UserPrincipal SetPassword

Я получаю исключение AccessDenied при изменении пароля пользователя с помощью класса UserPrincipal.

Я вхожу в приложение Asp.Net через проверку подлинности Windows (пользователь домена). Если я пытаюсь изменить пароль другого пользователя, я получаю исключение об отказе в доступе. Если я делаю то же самое с пользователем, который вошел в систему, все в порядке - я могу сменить пароль.

Я думал, что если я получу объект UserPrincipal с использованием PrincipalContext, я сделаю все, к чему у моего "Principal - domain \ adminAD" есть привилегии в AD.

Тело метода:

public bool SetPassword(string userName, string password)
{
    var saved = false;

    var ldapDomainName = "domain";
    var ldapUsersOU = "OU=TEST,DC=domain,DC=com";
    var ldapLogin = "domain\adminAD";
    var ldapPassword = "password";

    try
    {
        using (var principalContext = new PrincipalContext(
           ContextType.Domain,
           ldapDomainName,
           ldapUsersOU,
           ContextOptions.Signing | ContextOptions.Sealing | ContextOptions.Negotiate,
           ldapLogin,
           ldapPassword))
        {
            userPrincipal = UserPrincipal.FindByIdentity(principalContext, IdentityType.SamAccountName, userName);
            userPrincipal.SetPassword(password);
            userPrincipal.Save(principalContext);
            saved = true;
        }
     }
     catch (Exception ex)
     {
        // Log exception
     }

     return saved;
  }

Я уже искал ответ, и я знаю, что есть много ответов на подобные темы. Но никто из них не объясняет мою проблему, я думаю.

0 ответов

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