Проблема с Impersonation
От: Аноним  
Дата: 17.01.07 15:12
Оценка:
Доброго вам времени суток!

Ситуация следующая: есть 2 сервера — Server1, на нем есть расшаренная для пользователя custom_User (который тоже с этого сервера) папка CustomImages.
Второй сервер — Server2, на нем исполняется код, который делая impersonation должен добраться до содержимого папки CustomImages.
Код выглядит так:

// тут импортится функция LogonUser из advapi32.dll

а в мэйн-функции написано так:

tokenHandle = IntPtr.Zero;

const int LOGON32_PROVIDER_DEFAULT = 0;
const int LOGON32_LOGON_INTERACTIVE = 2;

// ---- Step — 1
// Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(
@"\\server1\custom_User",
null, //no domain
"password",
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT,
ref tokenHandle);

// ---- Step — 2
WindowsIdentity newId = new WindowsIdentity(tokenHandle);
// ---- Step — 3
WindowsImpersonationContext context = newId.Impersonate();

И это не работает. Мессага эксэпшена Token cannot be zero — на step 2.
Т.е. не может залогиниться. Почему? Возможно ли это в принципе? Если да, то 1) что я делаю не так? 2) может какие-то политики нужно настраивать?

Код работает, если я использую логин\пароль локального пользователя с сервера Server2.


Заранее огромное спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.