我想在Windows中模拟其他用户。 例如:我创build一个权限只有用户A和pipe理员权限的目录,当用户Blogin并运行.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()
我不知道有没有其他的方式来模仿一个用户没有问题的用户积极参与,或作为该用户积极登录。
希望这有助于某种方式。