Я пишу службу Windows с использованием С#.NET 2005. Как определить, кем является текущий пользователь (если есть)? Также есть ли способ уведомления при входе пользователя в систему?
Альтернативно, есть ли способ узнать, кто недавно использовал машину?
Мне нужно знать текущего зарегистрированного пользователя, чтобы я мог кэшировать некоторые данные для этого пользователя. Работая в корпоративной среде, есть тысячи потенциальных пользователей, но имеет смысл кэшировать данные для тех, кто использует эту машину.
ОБНОВЛЕНИЕ:
Это решение работает хорошо. Также см. этот пример pinvoke.net, который использует расширенную структуру для получения имени домена.
В сочетании с этим я использую класс SystemEvents для уведомления, когда пользователь входит в систему на машине. См. пример 2 здесь для хорошего примера - обратите внимание, что вам нужно использовать скрытую форму из службы, чтобы иметь возможность использовать SystemEvents из службы.