【问题标题】:WIN API User Privilege C++WIN API 用户权限 C++
【发布时间】:2010-01-18 09:18:59
【问题描述】:

我正在尝试查看用户是否具有 SeLoadDriver 权限。我有 PLUID :

    PLUID pld;
    LookupPrivilegeValue(NULL, SE_LOAD_DRIVER_NAME, pld);

但现在我不确定如何从 PLUID 中获取一个布尔值,说明用户是否拥有该权限。我已经阅读了相关的方法,但它认为这可能是一种直接从 PLUID 值中获取它的简单方法。

谢谢

【问题讨论】:

    标签: c++ winapi privileges


    【解决方案1】:

    比这更复杂一点。

    首先,您需要获取进程令牌的权限集(通过调用 GetTokenInformation()),然后扫描从中获得的缓冲区(这是一个 LUID_AND_ATTRIBUTES 结构的数组)以查找从中获得的 LUID LookupPrivilegeValue()。然后,您可以使用您找到的LUID_AND_ATTRIBUTES 并检查Attributes 是否包含所需的标志(在您的情况下为SE_PRIVILEGE_ENABLED)。

    请注意,当您检查启用的权限时,您还应该检查SE_PRIVILEGE_REMOVED 是否未在您检查的Attributes 中设置;一个同时具有SE_PRIVILEGE_REMOVEDSE_PRIVILEGE_ENABLED 的权限已被删除且未启用...

    【讨论】:

      猜你喜欢
      • 2013-05-20
      • 2017-09-08
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-10
      • 2017-10-03
      相关资源
      最近更新 更多