这是我在命令提示符下运行的一个简单的控制台应用程序:
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)构建?