【问题标题】:Trying to understand SECURITY_LOGON_TYPE enumeration试图理解 SECURITY_LOGON_TYPE 枚举
【发布时间】: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);

到目前为止,我可以理解这些:

  1. Interactive 如果实际(人类)用户登录到工作站。 (就像我们现在在查看此页面时一样。)

  2. RemoteInteractive 如果已与此工作站建立了Remote Desktop Connection

有人可以为其他值添加更多描述吗?

【问题讨论】:

  • 您链接到的 MSDN 页面对所有值都有合理的描述。您对哪些价值观有疑问?
  • @EricBrown:我显然是在问,因为我不懂 MSDN 的解释。例如,batch process 是什么或CachedInteractiveInteractive 有何不同,仅举几例。如果您知道它们的全部含义,与您在上面发布的内容或根本不发布任何内容相比,发布实际解释会更容易吗?
  • CachedInteractive 使用缓存的凭据,例如在无法访问域控制器时。
  • @c00000fd - 我想弄清楚你对 MSDN 的解释有什么不明白的地方。我怀疑这里也可能有一个XY problem

标签: c++ windows winapi terminal-services


【解决方案1】:

MSDN 的解释都是不言自明的,有以下说明:

  1. CachedXXXX - 不要要求域控制器验证;相反,请检查凭据的本地缓存副本。
  2. Batch - 计划任务使用批处理登录类型运行。 You can deny the Batch Logon right, which would prevent a user from running scheduled tasks

【讨论】:

    猜你喜欢
    • 2017-02-03
    • 2012-06-19
    • 1970-01-01
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多