Some code Test SecurityCritical

 

        // test SecurityCritical, SecurityTransparent

        //shaoc 18-11-27

        static void Main(string[] args)

        {

           

            Console.WriteLine("hi ");

 

            ClassLibrary1.Class1 c1 = new ClassLibrary1.Class1 ();  // set transparent , exc .  Unhandled Exception: System.MethodAccessException: Attempt by security transparent method 'ConsoleApp1.Program.Main(System.String[])' to access security critical method 'ClassLibrary1.Class1..ctor()' failed.

            c1.funPublic();

 

            //AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;  // set transparent , exc

            //Unhandled Exception: System.MethodAccessException: Attempt by security transparent method 'ConsoleApp1.Program.Main(System.String[])' to access security critical method 'System.AppDomain.add_UnhandledException(System.UnhandledExceptionEventHandler)' failed.

 

            //AppDomain.CurrentDomain.ProcessExit += CurrentDomain_ProcessExit;

            //console   SecurityTransparent     SecurityTransparent

            //library   default                 SecurityTransparent

            //result    ex                      ok

 

 

        }

 

        private static void CurrentDomain_ProcessExit(object sender, EventArgs e)

        {

            Console.WriteLine("CurrentDomain_ProcessExit");

        }

 

        private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)

        {

            Console.WriteLine("UnhandledException: " + e.ToString());

            Environment.Exit(-1);

        }

 

D:\Users\fwtlaba-local\source\repos\ConsoleApp1\ConsoleApp1\Properties\AssemblyInfo.cs

//[assembly: System.Security.SecurityTransparent]

//Unhandled Exception: System.MethodAccessException: Attempt by security transparent method 'ConsoleApp1.Program.Main(System.String[])' to access security critical method 'ClassLibrary1.Class1..ctor()' failed.

//   at ConsoleApp1.Program.Main(String[] args)

 

 

//[assembly: System.Security.SecurityCritical]

//Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'ConsoleApp1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.An operation is not legal in the current state. (Exception from HRESULT: 0x80131509) ---> System.InvalidOperationException: SecurityTransparent and SecurityCritical attributes cannot be applied to the assembly scope at the same time.

 

 

//[assembly: System.Security.SecuritySafeCritical]

//Error CS0592  Attribute 'System.Security.SecuritySafeCritical' is not valid on this declaration type. It is only valid on 'class, struct, enum, constructor, method, field, interface, delegate' declarations.ConsoleApp1 

//[assembly: System.Security.SuppressUnmanagedCodeSecurity]

//Error CS0592  Attribute 'System.Security.SuppressUnmanagedCodeSecurity' is not valid on this declaration type. It is only valid on 'class, method, interface, delegate' declarations.ConsoleApp1 

 

 

//[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.None)]

////Unhandled Exception: System.IO.FileLoadException: Assembly 'ConsoleApp1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' specified an unknown security rule set.

//[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level1)]

//// ok

//[assembly: System.Security.SecurityRules(System.Security.SecurityRuleSet.Level2)]

//// ok

 

D:\Users\fwtlaba-local\source\repos\ClassLibrary1\Class1.cs

        //[System.Security.SecuritySafeCritical]   

        public void funPublic()

        {

            Console.WriteLine(nameof(funPublic) );

        }

 

        internal void funInt()

        {

            Console.WriteLine(nameof(funPublic) +" 2" );

        }

 

 

你可能感兴趣的:(Some code Test SecurityCritical)