zoukankan      html  css  js  c++  java
  • 代码访问安全性(CAS)了解

        从.NET Framework 1.0开始,微软就引入代码访问安全(CAS)模型,这是一项用于分配和管理托管代码的工具。.NET Framework 4.0 Beta 2并不赞成使用CAS,故默认情况下已经关闭该功能,而引入了第二级安全透明度的(Security Transparency Level 2)安全模型。所以本篇文主要了解CAS用法。

        代码访问安全性(CAS)能最大限底地防止用户无意识地执行不安全代码。通过使用CAS,就能够限制代码对资源的访问。用例子说明。

        例,我们新建一个Winform程序,要限制界面和文件IO为最小权限,并拒绝其它没有进行请求的权限。

        方法,打开项目中的Properties文件夹中的AssemblyInfo.cs,并在其中加入以下代码。各代码的意思已在备注中说明。

    #region 设置程序集权限
    using System.Security;
    using System.Security.Permissions;

    //用户界面权限
    [assembly: UIPermission(SecurityAction.RequestMinimum, Unrestricted = true)]
    //文件IO权限
    [assembly: FileIOPermission(SecurityAction.RequestMinimum, Unrestricted = true)]
    //权限集,拒绝其它没有进行请求的权限
    [assembly: PermissionSet(SecurityAction.RequestOptional, Unrestricted = false)]
    #endregion

    另外可以在代码中配置权限,如下。

     1)例,使用声明性权限

            //声明性权限要求
            [FileIOPermission(SecurityAction.Demand, Unrestricted = true)]
            
    private void btnIoPermission_Click(object sender, EventArgs e)
            {
                
    using (StreamReader stream = new StreamReader("CarList.xml"))
                {
                    MessageBox.Show(stream.ReadToEnd());
                }
            }

    2)例,使用命令性权限 

            private void btnIo3_Click(object sender, EventArgs e)
            {
                
    //命令性要求
                FileIOPermission filePerm = new FileIOPermission(PermissionState.Unrestricted);
                
    //在运行时确定当前主体是否与当前权限所指定的主体相匹配。
                filePerm.Demand();
                
    using (StreamReader stream = new StreamReader("CarList.xml"))
                {
                    MessageBox.Show(stream.ReadToEnd());
                }

            }

       

  • 相关阅读:
    使用栈检测括号是否成对出现
    java多线程基本概述(十七)——原子性和易变性
    java多线程基本概述(十六)——捕获异常
    java多线程基本概述(十五)——DaemonThread
    java多线程基本概述(十四)——Thread内部类的几种写法
    java多线程基本概述(十三)——Executor
    java多线程基本概述(十二)——多线程与单例
    java多线程基本概述(十一)——ReadWriteLock
    java多线程基本概述(十)——Condition
    java多线程基本概述(九)——Lock(3)
  • 原文地址:https://www.cnblogs.com/scottckt/p/1967460.html
Copyright © 2011-2022 走看看