![](/img/trans.png)
[英]c# - How to get active session/user on local machine (Windows 10)
[英]Getting Local Windows User login session timestamp in C#
我一直在嘗試查看各種.NET類庫,以便我可以獲取本地計算機的登錄用戶,無論是否連接到域。 至今
System.Security.Principal.WindowsPrincipal LoggedUser = System.Threading.Thread.CurrentPrincipal as
System.Security.Principal.WindowsPrincipal;
// This returns the username
LoggedUser.Identity.Name
這將返回用戶的名稱,但有任何方式獲取會話詳細信息,您將在AD或用戶登錄時看到的內容,會話持續時間等等。用戶的上下文,諸如Workstation鎖定的操作,存在用戶基本的。
如果您有任何想法,我將不勝感激。 提前致謝。
您可以使用System.DirectoryServices命名空間通過LDAP查詢查詢Active Directory以獲取所需的大部分數據。 例如,下面的示例顯示了用戶的上次登錄時間。
當然,這僅適用於域用戶。
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();
}
}
}
您可以從WMI中查看WMI_LogonSession等一些啟動時間
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.