2016-04-21 87 views
0

我正在尝试确定特定用户进程的登录会话ID。为此,我检索了流程令牌,然后使用TokenOrigin选项调用GetTokenInformation为什么TokenOrigin总是返回相同的值?

但是,答案似乎总是0x3E7,即使我有两个不同的用户同时登录。显然这是不对的。

什么是TokenOrigin实际查找,特别是0x3E7的意义是什么?如何获得令牌的真实登录会话ID?

回答

0

TokenOrigin下documentation for TOKEN_INFORMATION_CLASS,,说:

如果令牌是由于所使用显式凭据,如传递一个名称,域的登录和密码传递给LogonUser函数,那么TOKEN_ORIGIN结构将包含创建它的登录会话的ID。

那样的声音仿佛这意味着令牌属于登录会话,但如果你读它小心地可能同样意味着与执行的认证操作过程中相关的登录会话事实证明,这确实是返回的。在Windows 7中,0x3E7通常是登录会话winlogon.exe,它负责验证交互式登录。

如果我们look under logon identifier in the glossary它说:

要从访问令牌获取登录ID,请致电TokenStatistics的GetTokenInformation功能;登录ID在AuthenticationId成员中。

我已确认此功能按预期工作。