假设网络进程P
在Windows帐户A1
下运行。我假设如果线程(在P
内运行)在某个其他身份(通过Thread.CurrentPrincipal.Identity
获得)下运行而不是A1
,则在访问系统时它仍具有与A1
相同的权限资源(如文件等)?
谢谢
答案 0 :(得分:5)
我不希望具有不同身份的线程“继承”进程标识的权限。
为了确保我进行了模拟测试。在这里使用示例WindowsIdentity.Impersonate我在另一个线程上运行了以下代码。
WindowsIdentity newId = new WindowsIdentity(safeTokenHandle.DangerousGetHandle());
Thread.CurrentPrincipal = new WindowsPrincipal(newId);
string foo = System.IO.File.ReadAllText (@"test.txt");
Console.WriteLine(foo);
即使进程的ID有权读取test.txt,如果newID没有,它也会失败。