2015-05-01 4 views
0

Я пишу приложение, в котором пользователи используют мою программу для входа в различные ПЛК. Все ПЛК используют одну и ту же программу для входа в систему. Многие люди удаляются на сервер, чтобы получить доступ к тому, что им нужно. Приложение работает отлично, и я могу отслеживать, кто вошел в систему, используя Environment.UserName.Получить текущий идентификатор пользователя

Теперь, что произошло, пользователи могут входить в систему несколько раз для определенных случаев и использовать мое приложение. Это вызвало некоторые проблемы с моим отслеживанием, поскольку, если они выходят из ПЛК за один сеанс, приложение считает, что они вышли из обоих сеансов.

Теперь мне нужна точная идентификация пользователя, которую вы можете увидеть, когда подтягиваете «Диспетчер задач» и смотрите под вкладкой «Пользователи».

Я искал WindowsIdentity.GetCurrent(). и Environment. Я не знаю, пропустил ли я его, упустил из виду, сосать в googling, но я не знаю, каким образом я могу получить это число через VB.NET.

Если вам интересно, почему я не использую PID или что-то, чтобы отслеживать программу, это потому, что я не могу. Процесс программы, которая управляет ПЛК, выполняется в фоновом режиме сеанса, что означает, что я не могу получить доступ к PID или к чему-либо из этого процесса.

Благодаря

ответ

1

Наконец было некоторое время, чтобы сделать некоторые покопаться.

Process.GetCurrentProcess().SessionId 

Это сделало трюк. Не уверен, почему я так много боролся, чтобы найти это, но я решил, что обновлю это с ответом!

Cheers!