2012-06-01 1 views
0

Может ли кто-нибудь помочь мне с этим? У меня этот код работает нормально на XP 32 бита, а на XP 64 бита «user.SetPassword» (не .save()) генерирует исключение:DirectoryServices.AccountManagement.UserPrincipal.SetPassword ("BLahBlahBlah")

Исключение»было брошено в адресат вызова. "

{ "Доступ запрещен (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))"}

Код:

 UserPrincipal user = UserPrincipal.FindByIdentity 
      (new PrincipalContext(ContextType.Domain, Domain, "MYADMINUSER", "MYADMINPASSWORD"), IdentityType.SamAccountName, Account); 
     user.SetPassword("BlahBlahBlah"); 
     user.Save(); 

Оба клиенты находятся в том же домене, и цель в обоих случаев один и тот же пользователь. «MYADMINUSER» может входить в систему для обоих клиентов и изменять целевого пользователя с помощью ADUC.

Любые идеи?

ответ

1

Это, скорее всего, не имеет отношения к 32- или 64-битным. Вероятно, это проблема с управлением учетными записями пользователей, предотвращающая операцию. Вы можете попробовать щелкнуть правой кнопкой мыши свое приложение и выбрать «Запуск от имени администратора», чтобы проверить это.

См. Step 6: Create and Embed an Application Manifest (UAC) о том, как добавить манифест в приложение, которое может быть использовано для запроса запроса на получение привилегии.

+0

Нет. К сожалению, это не помогло. Он также не работает при отладке в VS. – Daro

 Смежные вопросы

  • Нет связанных вопросов^_^