c++ - C++ 使用用户名/SID 或备用读取任何 Windows 用户 HKEY
问题描述
我创建了一个适用于所有 Windows 用户(本地、AD、Azure 等)的应用程序。对于每个用户,我都在 HKEY_CurrentUer\TESTApp\ 注册表中存储了一些数据。现在在自定义凭据提供程序 (LOGINUI) 中,一旦用户输入凭据想要读取该用户 HKEY_{...}\TESTApp\ 详细信息以了解有关用户的更多信息。
如果他已经登录,我可以成功地将用户详细信息存储在 HKEY_CurrentUer\TESTApp\ 注册表中并从 HKEY_USERS\SID\TESTApp\ 读取详细信息。
现在我有以下问题,
- 是否可以对未使用用户名/SID 登录或注销的用户执行相同操作?
- 是否有任何其他 HKEY 地方可以存储用户详细信息,并且可以在没有管理员权限的情况下使用用户名/SID 轻松读取?现在,我想在机器本身(没有云)中维护用户详细信息。
- 最后,如果以上两个都不可能,我可以在我的应用程序工作区中创建和读取具有密钥对值的文件而没有任何权限问题吗?
由于我是 Windows 应用程序开发的新手,如果我做错了,请纠正我。提前致谢。
解决方案
HKEY_USERS\SID
只有在本机成功登录后才会创建,并在注销后继续驻留。如果您正在谈论凭据提供程序的登录方案,
CPUS_LOGON
则意味着您的凭据提供程序正在使用应用程序的最高权限 - 作为SYSTEM
用户,您几乎可以在任何地方进行读写。
推荐阅读
- c++ - 如何在可变参数模板推导期间将指针隐式转换为 const 指针
- angular - 如何在每个请求之前通过检查顺序发送请求?
- postgresql - 使用 golang sqlx 在 postgres 中类型为 jsonb 的列中插入一个数组
- mysql - 在 mysql JSON 数据类型中使用重音字符进行搜索
- c# - 如何配置在 IIS 中显示 MIME 类型?
- identityserver4 - IdentityServer4 可通过前通道和后通道 URL 访问
- javascript - 根据规范,js 中最大的 BigInt 值是多少
- npm - 在安装时从私有 git 构建 npm-package
- excel - 如何通过颜色编码表示不同的状态?
- selenium - Selenium 单击具有更高 z-index 的 div 后面的按钮