Я бы не ожидал, что поток с другим идентификатором «унаследует» разрешения от идентификатора процесса.
Просто чтобы убедиться, что я выполнил тест олицетворения. Используя образец здесь WindowsIdentity.Impersonate Я запустил следующий код в другом потоке.
WindowsIdentity newId = new WindowsIdentity(safeTokenHandle.DangerousGetHandle());
Thread.CurrentPrincipal = new WindowsPrincipal(newId);
string foo = System.IO.File.ReadAllText (@"test.txt");
Console.WriteLine(foo);
Несмотря на то, что идентификатор процесса имеет права на чтение test.txt, если новый идентификатор не удастся.