LogonUser работает только для моего домена - PullRequest
4 голосов
/ 14 июня 2009

Мне нужно выдать себя за пользователя с помощью C #. Я использую LogonUser Win32 API. Это прекрасно работает при олицетворении пользователей из того же домена, что и текущий вошедший в систему пользователь. Однако я получаю «ложь» в ответ, когда пытаюсь выдать себя за пользователя из другого домена.

Что может вызвать это?

Ответы [ 2 ]

5 голосов
/ 15 июня 2009

Как говорит Джоэл, вам необходимо доверие между доменами.

Вам также необходимо соблюдать осторожность в отношении контекста безопасности процесса, выполняющего делегирование, и того, в каком домене находится компьютер, на котором вы работаете.

И домен, и учетная запись пользователя процесса должны быть доверенными для делегирования доменом, к которому вы пытаетесь получить доступ.

Это означает, что ваш код должен работать в домене, к которому вы пытаетесь получить доступ.

Надеюсь, это поможет

Шираз

4 голосов
/ 14 июня 2009

Вы должны попытаться вызвать GetLastError сразу после того, как LogonUser не сможет увидеть, есть ли какая-либо информация об ошибке.

http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspx

Может быть некоторая проблема с вызовом GetLastError из c #.
Посмотрите здесь для получения дополнительной информации об этом: http://blogs.msdn.com/adam_nathan/archive/2003/04/25/56643.aspx

Есть ли доверие между вашими двумя доменами? Если нет, LogonUser завершится ошибкой.

...