J'écris un service Windows en utilisant C# .NET 2005. Comment puis-je déterminer qui est l'utilisateur actuellement connecté (le cas échéant)? Est-il également possible d'être averti lorsqu'un utilisateur se connecte?Comment déterminer l'utilisateur Windows actuel à partir d'un service Windows?
Sinon, existe-t-il un moyen de savoir qui a récemment utilisé la machine?
J'ai besoin de connaître l'utilisateur actuellement connecté afin que je puisse mettre en cache des données pour cet utilisateur. Dans un environnement d'entreprise, il existe des milliers d'utilisateurs potentiels, mais il est logique de mettre en cache des données pour quelqu'un qui utilise cette machine.
MISE À JOUR:
This solution fonctionne bien. Voir aussi this pinvoke.net example qui utilise la structure étendue pour récupérer également le nom de domaine. En combinaison avec ceci, j'utilise la classe SystemEvents pour être averti lorsqu'un utilisateur ouvre une session sur la machine. Voir example 2 here pour un bon exemple - notez que vous devez utiliser un formulaire caché d'un service afin de pouvoir utiliser SystemEvents à partir d'un service.
Merci, c'est génial. J'ai remarqué qu'il peut retourner deux fois le même utilisateur, donc j'ajouterais une étape de-dup si des valeurs uniques sont désirées. – Rory