Получение локальной метки времени входа пользователя Windows в C # - PullRequest
3 голосов
/ 25 марта 2009

Я пытался осмотреть различные библиотеки классов .NET, чтобы найти где-нибудь зарегистрированного пользователя локальной машины, подключенного к домену или нет. Пока что

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

Это вернет имя пользователя, однако есть ли какой-нибудь способ получить подробности сеанса, что-то, что вы увидите в AD или вошли в систему пользователя, продолжительность сеанса и т. Д. В контексте пользователя, такие действия, как рабочая станция заблокирована Присутствие пользователя в основном.

Если у вас есть идея, она будет очень признательна. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 25 марта 2009

Вы можете запросить Active Directory для получения большей части нужных вам данных через запросы LDAP, используя пространство имен System.DirectoryServices . Например, в приведенном ниже примере показано время последнего входа пользователя в систему.

Конечно, это работает только для пользователей домена.

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();
        }
    }
}
1 голос
/ 25 марта 2009

Вы можете получить некоторые из них, такие как время запуска из WMI, посмотрите на WMI_LogonSession

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...