Как определить текущего пользователя Windows из службы Windows?

Я пишу Windows Service с использованием C # .NET 2005. Как определить, кто в данный момент вошел в систему (если есть)? Также есть ли способ получать уведомления, когда пользователь входит в систему?

Кроме того, есть ли способ узнать, кто недавно использовал машину?

Мне нужно знать, кто в данный момент вошел в систему, чтобы я мог кэшировать некоторые данные для этого пользователя. Работая в корпоративной среде, существуют тысячи потенциальных пользователей, но имеет смысл кэшировать данные только для тех, кто использует эту машину.

ОБНОВИТЬ:

Это решение работает хорошо. Также смэтот пример pinvoke.net который использует расширенную структуру, чтобы также получить имя домена.

В сочетании с этим я использую класс SystemEvents, чтобы получать уведомления при входе пользователя в систему. Видетьпример 2 здесь для хорошего примера - обратите внимание, что вам нужно использовать скрытую форму из службы, чтобы иметь возможность использовать SystemEvents из службы.

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

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