Ответ 1
Вы должны сообщить своему приложению, что использовать PrincipalPolicy. Вы бы добавили
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
чтобы ваш код выглядел следующим образом:
using System;
using System.Threading;
using System.Security.Principal;
namespace Test
{
internal class Runner
{
[STAThread]
static void Main(string[] args)
{
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
Console.WriteLine(Thread.CurrentPrincipal.GetType().Name);
Console.WriteLine(Thread.CurrentPrincipal.Identity.Name);
}
}
}
См. http://msdn.microsoft.com/en-us/library/system.appdomain.setprincipalpolicy.aspx