【发布时间】:2012-06-09 15:06:26
【问题描述】:
我是 Active Directory 域管理员,如何获取特定域用户的访问令牌?我想使用这个用户的访问令牌从只对他开放的共享文件夹中获取一些数据。
【问题讨论】:
标签: c++ active-directory dns access-token
我是 Active Directory 域管理员,如何获取特定域用户的访问令牌?我想使用这个用户的访问令牌从只对他开放的共享文件夹中获取一些数据。
【问题讨论】:
标签: c++ active-directory dns access-token
如果用户已登录并且您想使用他的令牌模拟他,那么过程是:
使用WTSEnumerateSessions 循环列出系统的所有活动用户。
比较使用PWTS_SESSION_INFO 信息,如果用户是你想要的。
如果用户匹配,则使用WTSQueryUserToken 获取用户的令牌。此 Api 需要会话 ID,您将在调用 WTSEnumerateSessions 时从步骤 1 中获得的 PWTS_SESSION_INFO 结构获得会话 ID
使用 DuplicateTokenEx 复制令牌,然后使用 ImpersonateLoggedOnUser 模拟该用户。
复制文件等完成工作
RevertToself.
如果用户未登录,而您想冒充并使用他的凭据完成工作,则:
LogonUser API 获取令牌并从上述选项的第 4 步开始。【讨论】: