Когда я использую олицетворение WindowsIdentity следующим образом:
WindowsIdentity newId = null;
WindowsImpersonationContext impersonatedUser = null;
Console.WriteLine("Name of the identity BEFORE impersonation: "
+ WindowsIdentity.GetCurrent().Name + ".");
newId = new WindowsIdentity(_impersonationToken);
impersonatedUser = newId.Impersonate();
Console.WriteLine("Name of the identity AFTER impersonation: "
+ WindowsIdentity.GetCurrent().Name + ".");
(используется для копирования файлов с моего компьютера на машину winCE.)
Имя до и Имя после сохранениявозвращая то же самое.Когда я смотрю @ токен newId после олицетворения, он не совпадает с тем, который я использую для олицетворения.Токен, с которым я олицетворяю, определенно не тот же пользователь, что и тот, с кем я вошел в систему.
Есть ли у кого-нибудь предложения по поводу того, почему он не хочет использовать мой токен?(о да, вчера это сработало как талисман: s)
Вот как я генерирую свой токен:
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword,
int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
LogonUser(Username, IPMachine, Password,
LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT,
ref _token);
Это дает успешное бул, так что с моим токеном все в порядкея думаю