如何在代码中执行应用程序安全性检查(声明式和代码式)

这是今天课堂上一个例子,讲解了如何通过代码方式和声明式的方式检查应用程序的安全性。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Permissions;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.SetPrincipalPolicy(System.Security.Principal.PrincipalPolicy.WindowsPrincipal);


            try
            {
                SomeMethod();//通过声明式检查权限
            }
            catch
            {
                Console.WriteLine("调用方法发生了错误");
            }

            SomeMethod2();//通过代码的方式检查权限

            Console.Read();
        }


        [PrincipalPermission(SecurityAction.Demand,Role="BUILTIN\\Administrators")]
        static void SomeMethod() {
            Console.WriteLine("该方法只有管理员才能运行");
        }

        static void SomeMethod2() {
            try
            {
                //PrincipalPermission p = new PrincipalPermission("chenxizhang-pc\\chenxizhang", "BUILTIN\\Administrators");

                PrincipalPermission p = new PrincipalPermission(null, "BUILTIN\\Administrators");
               

                p.Demand();
                Console.WriteLine("该方法只有管理员才能运行,通过代码直接检查权限");
            }
            catch {
                Console.WriteLine("调用方法发生了错误");
            }
        }
    }
}
image 
posted @ 2010-03-20 18:39  陈希章  阅读(594)  评论(0编辑  收藏  举报