Получение текущего имени пользователя при олицетворении

Я использую что-то вроде следующего метода для олицетворения пользователя в моем коде:

Как вы делаете олицетворение в .NET?

В другом классе мне нужно узнать текущего пользователя (например, «mydomain \ moose»), но у меня не будет никакой идеи, выдавал я себя за другого пользователя или нет.

Как я могу получить имя пользователя, если я выдаю себя за кого-то?

System.Environment.UserName и System.Security.Principal.WindowsIdentity.GetCurrent (). Имена возвращают исходного пользователя, а не пользователя, выдавшего себя в настоящее время.

Больше деталей:

Я делаю это олицетворение, чтобы получить доступ к некоторым файлам в общей папке netowrk, к которой пользователь обычно не имеет доступа.

Если я использую тип входа LOGON32_LOGON_INTERACTIVE, я вижу нового пользователя, но не могу получить доступ к сетевому ресурсу. Если я использую тип входа LOGON32_LOGON_NEW_CREDENTIALS (значение 9), я могу получить доступ к общему сетевому ресурсу, но я не вижу нового пользователя в Environment.UserName.

Ответы на вопрос(4)

Ваш ответ на вопрос