草庐IT

ImpersonateSelf

全部标签

windows - 调用 ImpersonateSelf() 是否会取消对同一线程所做的所有安全 token 调整?

我不明白ImpersonateSelf().假设我的代码在某个主机进程中运行。该主机进程创建了一个新线程并调整了线程安全性,以便线程具有最小权限,现在新线程执行我的代码。我的代码调用ImpersonateSelf(SecurityImpersonation);会有什么影响?它会重置为该线程所做的所有权限调整吗? 最佳答案 是的。它复制进程token并将其分配为当前线程的模拟token。旧token的特权无关紧要,因为线程不再使用该token。如果要合并权限,请使用GetTokenInformation获取旧权限并自己复制和分配模拟t

windows - 如果 ImpersonateSelf() 失败后的 RevertToSelf() 会致命吗?

MSDN说如果RevertToSelf()失败程序应立即终止,否则它会继续以被模拟的客户端的名义运行,这是不合适的。现在假设我做ImpersonateSelf(SecurityImpersonation);并且调用成功,然后我调用RevertToSelf(),后者失败了。线程继续以当前进程的权限运行。它也很糟糕吗? 最佳答案 我喜欢你的问题,MSDN对此并不清楚。我看了ProgrammingWindowsSecurity(KeithBrown)第112到117页。ImpersonateSelf通过调用完成您可以自己完成的所有工作Op