Получение текущего имени пользователя при олицетворении
Я использую что-то вроде следующего метода для олицетворения пользователя в моем коде:
Как вы делаете олицетворение в .NET?
В другом классе мне нужно узнать текущего пользователя (например, «mydomain \ moose»), но у меня не будет никакой идеи, выдавал я себя за другого пользователя или нет.
Как я могу получить имя пользователя, если я выдаю себя за кого-то?
System.Environment.UserName и System.Security.Principal.WindowsIdentity.GetCurrent (). Имена возвращают исходного пользователя, а не пользователя, выдавшего себя в настоящее время.
Больше деталей:
Я делаю это олицетворение, чтобы получить доступ к некоторым файлам в общей папке netowrk, к которой пользователь обычно не имеет доступа.
Если я использую тип входа LOGON32_LOGON_INTERACTIVE, я вижу нового пользователя, но не могу получить доступ к сетевому ресурсу. Если я использую тип входа LOGON32_LOGON_NEW_CREDENTIALS (значение 9), я могу получить доступ к общему сетевому ресурсу, но я не вижу нового пользователя в Environment.UserName.