c# - 如何检测用户何时使用 .NET (C#) 登录系统?

标签 c# .net

我需要检测通过 C# 中的远程桌面或控制台连接到服务器的用户的登录时间。我试图在 WMI 类中搜索属性,但没有找到任何属性。 再次提前致谢!

最佳答案

查看 cassia , .NET 终端服务库。

ITerminalServicesManager manager = new TerminalServicesManager();
using (ITerminalServer server = manager.GetRemoteServer("your-server-name"))
{
    server.Open();
    foreach (ITerminalServicesSession session in server.GetSessions())
    {
        Console.WriteLine("Session ID: " + session.SessionId);
        Console.WriteLine("User: " + session.UserAccount);
        Console.WriteLine("State: " + session.ConnectionState);
        Console.WriteLine("Logon Time: " + session.LoginTime);
    }
}

您还可以使用 P/Invoke 访问 Windows Terminal Services API直接,但 cassia 会为您包装它。

关于c# - 如何检测用户何时使用 .NET (C#) 登录系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334523/

相关文章:

c# - Visual Studio 警告级别的含义?

c# - 重新排队后保持交货顺序

c# - 在 C# 中没有多个定义的设计

c# - Couchbase .Net 客户端库 GetView 缓存问题

c# 如何避开内存分配瓶颈以提高多线程性能

c# - Visio 文档变量

c# - 在运行时更改 LINQ-to-SQL 连接字符串

c# - 将对象附加到 Telerik OpenAccess 数据上下文时遇到问题

c# - 内部类中接口(interface)的扩展方法

c# - 哪种 IEnumerable To a List 方式更好?