Как мне получить текущий сеанс пользователя внутри системного процесса? - PullRequest
0 голосов
/ 19 июня 2020

У меня есть DLL, которая размещена внутри процесса, работающего в контексте администратора. DLL получает обратные вызовы на основе действий пользователя, вошедшего в систему. GetUserName () возвращает имя пользователя Admin вместо вошедшего в систему пользователя, который своими действиями отвечает за обратный вызов. Я пытаюсь выдать себя за зарегистрированного пользователя, чтобы получить точное имя пользователя, но мне это не удалось. Я пробовал использовать WTSEnumerateSessions () для перечисления сеансов. Все, что он делает, это возвращает активных пользователей. Но у меня нет возможности определить текущий пользователь из перечисленных сеансов.

Перечисление выглядит как показано ниже в разделе Windows Серверы. Есть ли способ узнать, кто текущий пользователь из активных пользователей?

 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
 services                                    0  Disc
>rdp-tcp#5         User1                     3  Active
 console           Administrator             4  Active
 rdp-tcp#8         User2                     5  Active
 rdp-tcp                                 65536  Listen 

Я пробовал использовать WTSGetActiveConsoleSessionId () . Но он всегда возвращает идентификатор сеанса пользователя, вошедшего в систему физически. Но никогда не указывайте идентификаторы сеанса пользователей, вошедших в систему через RDP.

Если кто-либо из вас решил проблему такого рода, пожалуйста, помогите мне.

...