Csharp/C Sharp by API/System.Security.Principal/GenericIdentity
new GenericIdentity(String name)
<source lang="csharp"> using System; using System.Security; using System.Security.Permissions; using System.Security.Principal; using System.Threading; public class Starter {
public static void Main() { GenericIdentity g = new GenericIdentity("Person1"); GenericPrincipal p = new GenericPrincipal(g,new string[] { "Manager" }); Thread.CurrentPrincipal = p; MyClass.MethodA(); YClass.MethodA(); }
} [PrincipalPermission(SecurityAction.Demand, Role = "Manager")] public class MyClass {
static public void MethodA() { Console.WriteLine("MyClass.MethodA"); }
} [PrincipalPermission(SecurityAction.Demand,Role = "Accountant")] public class YClass : MyClass {
static public void MethodB() { Console.WriteLine("MyClass.MethodB"); }
}
</source>