线程的身份

use*_*291 4 .net multithreading identity

假设Net进程P在Windows帐户下运行A1.我假设如果线程(P在其中运行)在某个其他身份(通过获取Thread.CurrentPrincipal.Identity)下运行A1,它仍然具有与A1访问系统资源(例如文件等)时相同的权限?

谢谢

Con*_*rix 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);
Run Code Online (Sandbox Code Playgroud)

即使进程的ID有权读取test.txt,如果newID没有,它也会失败.