试图理解SECURITY_LOGON_TYPE枚举
Trying to understand SECURITY_LOGON_TYPE enumeration
我正在努力理解所有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
是否已与此工作站建立远程桌面连接。
有人可以为其他值添加更多描述吗?
MSDN 的解释都是不言自明的,有以下说明:
-
CachedXXXX
- 不要要求域控制器进行验证;而是检查凭据的本地缓存副本。 -
Batch
- 使用批处理登录类型运行的计划任务。 您可以拒绝批量登录权限,这将阻止用户运行计划任务。
相关文章:
- 不带大括号的枚举形式
- 枚举环境变量的惯用C++14/C++17方法
- 类似枚举的计算常量
- 如何正确实现和访问运算符的各种自定义枚举器
- 错误:从"int"到枚举c++的转换无效
- C++中构造函数中的枚举
- 访问在 C++ 结构中声明的枚举变量
- 枚举类'classname'的多重定义
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- typedef 枚举和枚举类有什么区别?
- 为什么我的开关/机箱在使用枚举时默认?
- 标准::可选枚举的比较运算符
- C++两个源文件之间共享的枚举的静态实例
- 打印没有铸件的枚举可以在C++中吗?
- 枚举成员与静态 int 成员?
- C++:枚举:错误:应使用标识符而不是"}"
- 带有 c++ 的枚举(输入检查)
- 在 qml 中使用 Q_ENUM 和 Q_PROPERTY 作为枚举类
- 为什么 int 类型的枚举类值不能用作 int
- 在 C++ 中输出枚举类类型的向量元素