Obtención de la hora de inicio de sesión de usuario de Windows local en C #

He estado tratando de observar las distintas bibliotecas de clases .NET para algunos, donde puedo conectar al usuario de la máquina local, ya sea conectado a un dominio o no. Hasta aquí

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

Esto devolverá el nombre del usuario, sin embargo, hay alguna forma de obtener los detalles de la sesión, algo que usted vería en AD o el usuario que inició sesión, la duración de la sesión, etc. del usuario basiclly.

Si tienes alguna idea, sería muy apreciada. Gracias por adelantado.

Puede consultar Active Directory para la mayoría de los datos que necesita a través de consultas LDAP usando el espacio de nombres System.DirectoryServices . Por ejemplo, el ejemplo a continuación muestra el último tiempo de inicio de sesión del usuario.

Por supuesto, esto solo funciona para usuarios de dominio.

 using System; using System.Collections.Generic; using System.Text; using System.DirectoryServices; namespace ADMadness { class Program { static void Main(string[] 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].ToString()); DateTime lastLogon = DateTime.FromFileTime(lastLogonTimeStamp); Console.WriteLine("The user last logged on at {0}.", lastLogon); Console.ReadLine(); } } } 

Puede obtener algo de eso, como la hora de inicio de WMI, consulte WMI_LogonSession