Example #1
0
        static void Main(string[] args)
        {
            try
            {
                CreateTestFile();
                // 测试当前线程的安全上下文
                Console.WriteLine("主线程权限测试:");
                JudgePermission(null);
                // 创建一个子线程 subThread1
                Console.WriteLine("子线程权限测试:");
                Thread subThread1 = new Thread(JudgePermission);
                subThread1.Start();
                subThread1.Join();
                // 现在修改安全上下文,阻止文件访问
                FileIOPermission fip = new FileIOPermission(FileIOPermissionAccess.AllAccess, testFile);
                fip.Deny();

                // fip.Demand();
                Console.WriteLine("已成功阻止文件访问");
                // 测试当前线程的安全上下文
                Console.WriteLine("主线程权限测试:");
                JudgePermission(null);
                // 创建一个子线程 subThread2
                Console.WriteLine("子线程权限测试:");
                Thread subThread2 = new Thread(JudgePermission);
                subThread2.Start();
                subThread2.Join();
                // 现在修改安全上下文,允许文件访问
                SecurityPermission.RevertDeny();
                Console.WriteLine("已成功恢复文件访问");
                // 测试当前线程安全上下文
                Console.WriteLine("主线程权限测试:");
                JudgePermission(null);
                // 创建一个子线程 subThread3
                Console.WriteLine("子线程权限测试:");
                Thread subThread3 = new Thread(JudgePermission);
                subThread3.Start();
                subThread3.Join();

                Console.ReadKey();
            }
            finally
            {
                DeleteTestFile();
            }
        }
Example #2
0
        static void Main22()
        {
            //string path = @"C:\Users\Kikyo\Desktop\临时\1.txt";
            //FileHelper.ReadFileAsync(testFile, CallBack);
            //string s = File.ReadAllText(path);
            //Console.WriteLine(s);

            CreateTestFile();
            Console.WriteLine("主线程权限测试:");
            JudgePermission(null);

            Console.WriteLine("子线程权限测试:");
            Thread subThread1 = new Thread(CreateTestFile);

            subThread1.Start();
            subThread1.Join();

            FileIOPermission fip = new FileIOPermission(FileIOPermissionAccess.AllAccess, testFile);

            fip.Deny();
            Console.WriteLine("已成功阻止文件访问");

            Console.WriteLine("主线程权限测试:");
            JudgePermission(null);

            Console.WriteLine("子线程权限测试:");
            Thread subThread2 = new Thread(CreateTestFile);

            subThread2.Start();
            subThread2.Join();

            SecurityPermission.RevertDeny();
            Console.WriteLine("已成功恢复文件访问");

            Console.WriteLine("主线程权限测试:");
            JudgePermission(null);

            Console.WriteLine("子线程权限测试:");
            Thread subThread3 = new Thread(CreateTestFile);

            subThread3.Start();
            subThread3.Join();

            Console.ReadKey();
        }