use*_*291 4 .net multithreading identity
假设Net进程P在Windows帐户下运行A1.我假设如果线程(P在其中运行)在某个其他身份(通过获取Thread.CurrentPrincipal.Identity)下运行A1,它仍然具有与A1访问系统资源(例如文件等)时相同的权限?
谢谢
我不希望具有不同身份的线程"继承"进程标识的权限.
只是为了确保我运行了一个模拟测试.在这里使用示例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没有,它也会失败.