コマンドプロンプトで実行する簡単なコンソールアプリケーションは次のとおりです。
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」であり、ID名として空の文字列です。なぜ実行時のGenericPrincipal
代わりに構築するのWindowsPrincipal
ですか?WindowsPrincipal
開始プロセス(私の場合はcmd.exe)のセキュリティトークンから構築するように強制するにはどうすればよいですか?