using System; using System.Security; using System.Security.Principal; using System.Threading; class Starter { public static void Main() { Thread.GetDomain().SetPrincipalPolicy( PrincipalPolicy.WindowsPrincipal); IPrincipal p=Thread.CurrentPrincipal; PrincipalType(p); Console.WriteLine(p.Identity.Name); Thread.GetDomain().SetPrincipalPolicy( PrincipalPolicy.UnauthenticatedPrincipal); p=Thread.CurrentPrincipal; PrincipalType(p); Console.WriteLine(p.Identity.Name); Thread.GetDomain().SetPrincipalPolicy( PrincipalPolicy.NoPrincipal); p=Thread.CurrentPrincipal; PrincipalType(p); Console.WriteLine(p.Identity.Name); } public static void PrincipalType(IPrincipal p) { if(p is WindowsPrincipal) Console.WriteLine("\nWindows Principal"); else if(p is GenericPrincipal) Console.WriteLine("\nGeneric Principal"); else Console.WriteLine("\nNo principal"); } }