如何获取某些域用户的访问令牌?

时间:2012-06-09 15:06:26

标签: c++ active-directory dns access-token

我是Active Directory域管理员,如何获取某些域用户的访问令牌?我想使用这个用户的访问令牌从只向他开放的共享文件夹中获取一些数据。

1 个答案:

答案 0 :(得分:1)

如果用户已登录并且您想使用其令牌模拟他,则该过程为:

  1. 使用WTSEnumerateSessions在循环中列出系统的所有活跃用户。

  2. 如果用户符合您的要求,请使用PWTS_SESSION_INFO信息进行比较。

  3. 如果用户匹配,则使用WTSQueryUserToken获取用户的令牌。此Api需要您在调用PWTS_SESSION_INFO

  4. 时从步骤1中获得的WTSEnumerateSessions结构中获取的会话ID
  5. 使用DuplicateTokenEx复制令牌,然后使用ImpersonateLoggedOnUser模拟该用户。

  6. 复制文件等进行工作

  7. RevertToSelf时。

  8. Example click here

    如果用户未登录并且您想使用他的凭据模拟并执行工作,那么:

    1. 使用LogonUser API获取令牌,然后从上面的选项中执行步骤4。