【发布时间】:2013-11-18 00:38:03
【问题描述】:
我很难理解所有 SECURITY_LOGON_TYPE 值:
typedef enum _SECURITY_LOGON_TYPE {
Interactive = 2,
Network,
Batch,
Service,
Proxy,
Unlock,
NetworkCleartext,
NewCredentials,
RemoteInteractive,
CachedInteractive,
CachedRemoteInteractive,
CachedUnlock
} SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
我试图在这样的 C++ 代码的上下文中理解它们,它列出了所有登录会话:
//Error handling is skipped!
ULONG n = 0;
LUID* pluid;
LsaEnumerateLogonSessions(&n, &pluid);
for(ULONG s = 0; s < n; s++)
{
PSECURITY_LOGON_SESSION_DATA* ps;
LsaGetLogonSessionData(&pluid[s], &ps);
//Analyze logon type
ps->LogonType;
LsaFreeReturnBuffer(ps);
}
LsaFreeReturnBuffer(pluid);
到目前为止,我可以理解这些:
Interactive如果实际(人类)用户登录到工作站。 (就像我们现在在查看此页面时一样。)RemoteInteractive如果已与此工作站建立了Remote Desktop Connection。
有人可以为其他值添加更多描述吗?
【问题讨论】:
-
您链接到的 MSDN 页面对所有值都有合理的描述。您对哪些价值观有疑问?
-
@EricBrown:我显然是在问,因为我不懂 MSDN 的解释。例如,
batch process是什么或CachedInteractive与Interactive有何不同,仅举几例。如果您知道它们的全部含义,与您在上面发布的内容或根本不发布任何内容相比,发布实际解释会更容易吗? -
CachedInteractive 使用缓存的凭据,例如在无法访问域控制器时。
-
@c00000fd - 我想弄清楚你对 MSDN 的解释有什么不明白的地方。我怀疑这里也可能有一个XY problem。
标签: c++ windows winapi terminal-services