繁体   English   中英

模拟MFC C ++

[英]Impersonation MFC C++

我想模拟Windows中的其他用户。 例如:我创建了一个仅对用户A和管理员具有权限的目录,当用用户B登录并运行.exe时,我要模拟用户A以具有在该特定目录中进行编辑/删除/插入的权限。

我发现了这一点: http : //msdn.microsoft.com/en-us/library/aa374731(VS.85).aspx

首先,请查看有关Windows用户模拟的本文:

http://www.codeproject.com/KB/system/UserImpersonation.aspx

它应该给您一个起点。 如果您需要更多控制权,则需要研究访问令牌。

如果要访问用户A的文件夹和用户B的文件夹,则只需要以管理员具有进入所有文件夹的权限的方式来设置文件夹权限。 通常,机器管理员已经拥有这些权利。 我在这里假设是在谈论普通的Windows用户帐户和普通的计算机/域管理员帐户。

如果您想成为用户A,则意味着您需要用户A的有效权限才能成为该用户。 模拟并不简单(根据我的尝试),您需要通过域控制器请求访问权限,并协商您是用户B,并且您有权模拟用户A,通常这是由用户A和用户B共享完成的以及协商凭证句柄和安全上下文。 我怀疑这是您要遵循的过程类型。

一些有用的功能包括:

为了设置上下文,使用了这些上下文,并且在用户A和用户B之间来回传递数据以协商模拟

AcquireCredentialsHandle()
InitializeSecurityContext()
AcceptSecurityContext()
CompleteAuthToken()

一旦协商完成并创建了安全上下文,就可以使用它们来启动和停止模拟。

ImpersonateSecurityContext()
RevertContext()

我不知道有没有其他方法可以在没有相关用户的积极参与或以该用户身份主动登录的情况下模拟用户。

希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM