c# - 找出当前用户的用户名-当多个用户登录时

标签 c# .net windows authentication

“用户 A”已登录 我的应用程序将 Environment.Username 识别为“用户 A”

现在在 Windows 中,我单击切换用户 ... “用户 B”登录

“用户 A”的进程仍在运行 “用户 A”运行的应用程序仍然显示环境。用户名为“用户 A” 我希望应用程序识别当前登录用户(当前事件用户)是“用户 B”

我该怎么做?

最佳答案

没有当前事件用户这样的东西,因为可以有多个(终端服务器)

您可以使用 GetSystemMetrics(SM_REMOTESESSION) 来检查这是否是“本地” session ,并使用 WTSGetActiveConsoleSessionId 来获取控制台 session 的 session ID(您称之为当前登录用户)您可以使用 WTSRegisterSessionNotification 来获得通知变化。 ProcessIdToSessionId(GetCurrentProcess(),...) 将为您提供进程所在的 session ID。最后,WTSQuerySessionInformation() 将为您提供有关特定 session 的信息。

关于c# - 找出当前用户的用户名-当多个用户登录时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1244000/

相关文章:

c# - WebBrowser OnPropertyChange 事件未触发

c# - WINRT_NOT_PRESENT 的目的是什么?

c# - 是否可以将相同的 DLL 添加两次到 AppDomain 中,或者最好重新使用加载的 DLLC?

windows - 是否可以调整/隐藏窗口标准对话框 ("choose file to upload"窗口)?

windows - 如何阻止 git bash 窗口中出现不需要的波浪字符?

c# - 参数 'sectionGroupName' 无效

c# - c#中的双向循环链表

c# - 通过 Bot Framework 发送的英雄卡中的图像未从源更新

c# - 在ASP.NET MVC 4应用程序中检查SSL协议(protocol),密码和其他属性

c++ - 将 UTF-16 转换为 UTF-8