Идентичность нити - PullRequest
       1

Идентичность нити

4 голосов
/ 05 января 2011

Предположим, что сетевой процесс P выполняется под учетной записью Windows A1. Я предполагаю, что если поток (запущенный в P) работает под другим идентификатором (полученным через Thread.CurrentPrincipal.Identity), отличным от A1, он все еще имеет те же права, что и A1 при доступе к системным ресурсам (таким как файлы и т. Д.)?

спасибо

1 Ответ

5 голосов
/ 06 января 2011

Я бы не ожидал, что поток с другим идентификатором «унаследует» разрешения от идентификатора процесса.

Просто чтобы убедиться, что я выполнил тест олицетворения. Используя образец здесь 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, если новый идентификатор не удастся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...