Вот тривиальное консольное приложение, которое я запускаю в командной строке:
using System;
using System.Threading;
namespace Test
{
internal class Runner
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine(Thread.CurrentPrincipal.GetType().Name);
Console.WriteLine(Thread.CurrentPrincipal.Identity.Name);
}
}
}
Вывод "GenericPrincipal" и пустая строка в качестве идентификатора. Почему во время выполнения строятся GenericPrincipal
вместо WindowsPrincipal
? Как заставить его построить WindowsPrincipal
из токена безопасности стартового процесса (cmd.exe в моем случае)?