为了账号安全,请及时绑定邮箱和手机立即绑定

如何检索.NET中已登录/已连接用户的列表?

如何检索.NET中已登录/已连接用户的列表?

精慕HU 2019-10-30 13:03:44
这是场景:您有一台Windows服务器,用户可以通过RDP远程连接到该服务器。您希望您的程序(作为服务运行)知道当前连接的人。这可能包括也可能不包括交互式控制台会话。请注意,这是不一样的只是检索当前的交互式用户。我猜想可以通过某种API访问终端服务来获取此信息?
查看完整描述

3 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

如果您不想自己处理P / Invokes,另一种选择是使用Cassia库:


using System;

using System.Security.Principal;

using Cassia;


namespace CassiaSample

{

    public static class Program

    {

        public static void Main(string[] args)

        {

            ITerminalServicesManager manager = new TerminalServicesManager();

            using (ITerminalServer server = manager.GetRemoteServer("your-server-name"))

            {

                server.Open();

                foreach (ITerminalServicesSession session in server.GetSessions())

                {

                    NTAccount account = session.UserAccount;

                    if (account != null)

                    {

                        Console.WriteLine(account);

                    }

                }

            }

        }

    }

}


查看完整回答
反对 回复 2019-10-30
  • 3 回答
  • 0 关注
  • 562 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信