// (c) 2006 Richard Grimes // www.grimes.demon.co.uk using System; using System.Security.Principal; using System.Security.Permissions; class App { static void Main() { AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); try { Console.WriteLine("called OnlyAdministrators"); OnlyAdministrators(); } catch (Exception) { Console.WriteLine("OnlyAdministrators failed"); } try { Console.WriteLine("called OnlyRichard"); OnlyRichard(); } catch (Exception) { Console.WriteLine("OnlyRichard failed"); } } [PrincipalPermission(SecurityAction.Demand, Role=@"BUILTIN\Administrators")] static void OnlyAdministrators() { Console.WriteLine("OnlyAdministrators called"); } [PrincipalPermission(SecurityAction.Demand, Name=@"MARS\RichardGrimes")] static void OnlyRichard() { Console.WriteLine("OnlyRichard called"); } }