上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页
摘要: 代码组可以具有一些属性,这些属性可影响公共语言运行库确定程序集允许的权限集的方式。可应用到代码组的属性有两种:Exclusive和LevelFinal。 Exclusive属性,策略级别允许的权限集是与具有此属性的代码组关联的权限集。在考虑所有策略级别时,运行库向代码授予的权限绝对不会多于与Exclusive代码组关联的权限。在给定的策略级别内,代码只能是具有Exclusive属性的一个代码组的成员。在运行库计算独占代码组中的程序集的权限时,该属性会防止考虑同一策略级别中的其他代码组。但仍会计算当前级别之下和之下的策略级别。该属性允许一个特定代码组为当前策略级别针对向与该组匹配的程序集授予什么权限的问题做出唯一决定。这在需要向特定程序集授予特定权限集而不允许来自同一策略级别上的其他代码组匹配项的权限时很有用。 阅读全文
posted @ 2012-06-23 17:51 玄魂 阅读(449) 评论(0) 推荐(1) 编辑
摘要: 在创建代码组的过程中,简要熟悉了代码组的成员条件,在安全策略的实施过程中,可以认为,所有符合该代码组成员条件的程序集都属于该代码组。成员条件的实现形式是类型,每种成员条件对应一种类型。 阅读全文
posted @ 2012-06-23 17:29 玄魂 阅读(632) 评论(0) 推荐(1) 编辑
摘要: 代码组为我们提供了通过配置方式来实现代码访问安全性的途径。通过代码访问安全性策略工具——Caspol.exe,可以创建、删除、更改代码组。 代码组实质是一个条件表达式和一个权限集。如果程序集满足该条件表达式,那么就会被授予该权限集。每个策略级别的代码组集是按树的形式组织的。 代码组同时可以通过属性来说明如何定义安全策略。 对代码组的管理可以使用两个工具,一个是.NET Framework配置工具,一个是Caspol.exe。为了演示这两个工具的使用,对代码组的查看采用Caspol.exe,从命令行操作;对代码组的创建、修改和删除,使用.NET Framework配置工具从图形界面来操作。 阅读全文
posted @ 2012-06-23 17:06 玄魂 阅读(1003) 评论(1) 推荐(1) 编辑
摘要: 通过托管代码来管理CLR的方式,称为托管宿主。想实现托管宿主很简单,只要实现System.AppDomainManager类就可以了。AppDomainManager类的定义如代码清单1-1所示。 阅读全文
posted @ 2012-06-23 16:16 玄魂 阅读(1446) 评论(0) 推荐(1) 编辑
摘要: 托管exe文件的加载和执行过程在之前的文章做过简要的介绍,现在结合本章的内容进行详细的分析。 阅读全文
posted @ 2012-06-23 16:05 玄魂 阅读(1489) 评论(1) 推荐(2) 编辑
摘要: MSCOREE.DLL负责选择.NET版本、调用和初始化CLR等工作。非托管程序想要启动CLR也必须引用MSCOREE.DLL,利用它的导出函数加载托管代码和进行定制CLR等操作。既然现在的焦点集中在MSCOREE.DLL,下面一同来看它的庐山真面目。 阅读全文
posted @ 2012-06-23 14:19 玄魂 阅读(4934) 评论(1) 推荐(6) 编辑
摘要: 我们都知道,进程是操作系统进行资源调度和分配的基本单位,每个进程实际代表了当前应用程序从启动到结束的全部过程。对于Windows中的每一个.exe文件,在运行时都要由一个进程来承载它。与非托管.exe文件不同的是,托管.exe文件并没有直接将程序集加载到当前进程当中,而是将程序集加载到应用程序域中,然后将应用程序域加载到进程中。每个进程可以承载多个应用程序域。因此,对于托管程序,每个进程可以承载多个应用程序,这同时也提升了应用程序的性能,因为进程的切换所耗费的性能要多于应用程序域的切换。 阅读全文
posted @ 2012-06-23 13:30 玄魂 阅读(2828) 评论(4) 推荐(3) 编辑
摘要: 在上一篇博客(说说emit(上)基本操作)中,我描述了基本的技术实现上的需求,难度和目标范围都很小,搭建了基本的架子。在代码中实现了程序集、模块、类型和方法的创建,唯一的缺憾是方法体。 方法体是方法内部的逻辑,我们需要将这个逻辑用IL代码描述出来,然后注入到方法体内部。这里自然地引出两个主题,IL代码和用来将Il代码注入到方法体内的工具(ILGenerator)。本篇博客将主要围绕这两个主题展开。但是这一篇博客不可能将IL讲的很详细,只能围绕ILGenerator的应用来讲解。 阅读全文
posted @ 2012-06-22 14:43 玄魂 阅读(11435) 评论(6) 推荐(15) 编辑
摘要: 今天要谈论的主题是Emit,反射的孪生兄弟。想要通过几篇博客详尽的讲解Emit也是很困难的事情,本系列计划通过两个简单的实例来讲解,计划写三篇博客: 1) 说说Emit(上)基本操作; 2) 说说Emit (中)ILGenerator; 3) 说说Emit (下)Emit在AOP和单元测试中的应用; 这几篇博客不可能涵盖Emit所有内容,只希望能让您知道Emit是什么,有哪些基本功能,如何去使用。 阅读全文
posted @ 2012-06-03 18:03 玄魂 阅读(11642) 评论(5) 推荐(11) 编辑
摘要: 程序集是.NET应用程序的基本单位,包含了程序的资源、类型元数据和MSIL代码。根据程序集生成方式的不同,可分为静态程序集和动态程序集。程序集又可分为单文件程序集和多文件程序集,多文件程序集将程序集中的文件按类型组织到多个文件中。每个程序集,无论是静态的还是动态的,均包含描述该程序集中各元素彼此如何关联的数据集合,程序集清单就包含这些程序集元数据。程序集还可以进行版本控制和强名称等安全设置。 阅读全文
posted @ 2012-05-28 09:23 玄魂 阅读(3929) 评论(0) 推荐(4) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 31 下一页