Obtenir l’horodatage de session de connexion utilisateur Windows locale en C #

J’ai essayé de parcourir les différentes bibliothèques de classes .NET pour en savoir plus sur les utilisateurs connectés de l’ordinateur local, qu’ils soient connectés à un domaine ou non. Jusque là

System.Security.Principal.WindowsPrincipal LoggedUser = System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal; // This returns the username LoggedUser.Identity.Name 

Cela renverra le nom de l’utilisateur, mais y a-t-il un moyen d’obtenir les détails de la session, quelque chose que vous verriez dans AD ou utilisateur connecté, durée de la session, etc. de l’utilisateur basiquement

Si vous avez une idée, ce serait très apprécié. Merci d’avance.

Vous pouvez interroger Active Directory sur la plupart des données dont vous avez besoin via les requêtes LDAP à l’aide de l’espace de noms System.DirectoryServices . Par exemple, l’exemple ci-dessous montre la dernière heure d’ouverture de session de l’utilisateur.

Bien sûr, cela ne fonctionne que pour les utilisateurs du domaine.

 using System; using System.Collections.Generic; using System.Text; using System.DirectoryServices; namespace ADMadness { class Program { static void Main(ssortingng[] args) { DirectorySearcher search = new DirectorySearcher("LDAP://DC=my,DC=domain,DC=com"); search.Filter = "(SAMAccountName=MyAccount)"; search.PropertiesToLoad.Add("lastLogonTimeStamp"); SearchResult searchResult = search.FindOne(); long lastLogonTimeStamp = long.Parse(searchResult.Properties["lastLogonTimeStamp"][0].ToSsortingng()); DateTime lastLogon = DateTime.FromFileTime(lastLogonTimeStamp); Console.WriteLine("The user last logged on at {0}.", lastLogon); Console.ReadLine(); } } } 

Vous pouvez obtenir certaines informations telles que l’heure de démarrage de WMI sur WMI_LogonSession