1: static void Main(string[] args)
2: {
3: GenericIdentity identity = new GenericIdentity("Foo");
4: Thread.CurrentPrincipal = new GenericPrincipal(identity, new string[] { "Guests" });
5: Invoke(() => TestMethod1());
6: Invoke(() => TestMethod2());
7: Invoke(() => TestMethod3());
8: Invoke(() => TestMethod4());
9: }
10:
11: public static void Invoke(Action action)
12: {
13: try
14: {
15: action();
16: }
17: catch(Exception ex)
18: {
19: Console.WriteLine(ex.Message);
20: }
21: }
22:
23: [PrincipalPermission(SecurityAction.Demand, Name = "Foo")]
24: public static void TestMethod1()
25: {
26: Console.WriteLine("TestMethod1方法被成功执行。");
27: }
28: [PrincipalPermission(SecurityAction.Demand, Name = "Bar")]
29: public static void TestMethod2()
30: {
31: Console.WriteLine("TestMethod2方法被成功执行。");
32: }
33: [PrincipalPermission(SecurityAction.Demand, Role="Adminstrators")]
34: public static void TestMethod3()
35: {
36: Console.WriteLine("TestMethod3方法被成功执行。");
37: }
38: [PrincipalPermission(SecurityAction.Demand, Role = "Adminstrators")]
39: [PrincipalPermission(SecurityAction.Demand, Role = "Guests")]
40: public static void TestMethod4()
41: {
42: Console.WriteLine("TestMethod4方法被成功执行。");
43: }