sha*_*oth 7 windows security privileges impersonation winapi
MSDN说,如果RevertToSelf()失败,程序应立即终止,否则它将继续以被模拟的客户端名称运行,这是不合适的.现在假设我这样做
ImpersonateSelf( SecurityImpersonation );
Run Code Online (Sandbox Code Playgroud)
并且呼叫成功,然后我呼叫RevertToSelf(),后者失败.线程继续以当前进程的权限运行.它真的很糟糕吗?
我喜欢你的问题,MSDN 并不清楚。
我查看了《Programming Windows Security》(Keith Brown)第 112 至 117 页。ImpersonateSelf您可以通过调用自己完成所有工作
WhileRevertToSelf只是一个调用
SetThreadToken(0,0)
Run Code Online (Sandbox Code Playgroud)
传递两个 null 参数指示该方法恢复到以前的标记。您不必处理模拟与主要令牌和令牌访问权限的问题。调用总会成功。
如果您查看RpcRevertToSelf函数的错误代码,您会发现除了 RPC 相关代码之外,唯一的失败模式是您没有进行模拟。
我说可以安全地假设RevertToSelf(从与 ImpersonateSelf 相同的线程调用)总是会成功。
| 归档时间: |
|
| 查看次数: |
1042 次 |
| 最近记录: |