3.1 两种程序集 两种部署

1. CLR支持两种程序集: 弱命名程序集和强命名程序集;

  两者的区别: 强命名的程序集使用一对发布者的公钥/私钥对进行了签名.它唯一的标识了程序集的发布者;

  弱命名的程序集只能以私有的方式部署,强命名的程序集可以全局部署;

3.2 为程序集分配强命名

  1. 一个强命名的程序集包括4部分重要属性用来对程序集进行唯一标识:

    @1 一个文件名(不含扩展名); @2 一个版本号; @3 一个语言文化标识;@4 一个公钥;

  2. ms使用标准的公钥/私钥加密技术,这样保证了程序集的唯一性;

  3. 创建强命名程序集的步骤:

    第一步: 使用Strong Name(SN.exe)来获取一个密钥;

    第二步: 将原有程序集升级为强命名程序集;

3.3 全局程序集缓存

  1. 全局程序集缓存GAC: 一个程序集要由多个应用程序访问,必须把它放到一个已知的目录中,--这个已知的位置就是GAC(Global Assembly Cache);

  2. GAC目录是结构化的,应使用工具(GACUtil.exe)将程序集放到GAC中,不能将一个弱命名的程序集放到GAC中;

  3. GAC中注册程序集的目的: 防止同名程序集覆盖;

3.4 在生成的程序集中引用一个强命名程序集

  1. 对于不完整的路径,CSC.exe会尝试在以下目录中寻找程序集:

    @1 工作目录;

    @2 包含CSC.exe本身的目录;

    @3 使用/lib编译器开关指定的目录;

    @4 使用LIB环境变量的目录;

  2. 安装..NET Framework时会安装两套程序集文件:

    一套安装在编译器/CLR目录; 一套安装到一个GAC子目录;

3.5 强命名程序集能防篡改

  1. 在安装强命名程序集到GAC时,系统会对包含清单的那个文件内容进行哈希处理,并将哈希值与PE文件中嵌入的RSA数字签名比较,如果一致就表明没有被篡改,系统还

    会对其他文件进行哈希处理,有一个不一致就表明被篡改了

  2. 强命名程序集如果安装在GAC之外,CLR在加载时会比较哈希值.

( ⊙ o ⊙ )!  看的稀里糊涂..不知道看的是什么东东...

转载于:https://www.cnblogs.com/ry123/archive/2012/11/26/2789887.html

CLR读书笔记--第三章 共享程序集和强命名程序集相关推荐

  1. 第 3 章 共享程序集和强命名程序集

    3.1 节 两种程序集,两种部署 CLR 支持两种程序集:弱命名程序集(weakly named assembly,即无签名的程序集) 和 强命名程序集(strongly named assembly ...

  2. 共享程序集和强命名程序集(3):强命名程序集的一些作用

    强命名程序集能防篡改 用私钥对程序集进行签名,并将公钥和签名嵌入程序集,CLR就可以炎症程序集未被修改或破坏.程序集安装到GAC时,系统对包含清单的那个文件的内容进行哈希处理,将Hash值与PE文件中 ...

  3. 《Linux Shell脚本攻略》读书笔记第三章 以文件之名

    1.生成任意大小文件 dd [root@stone ~]# dd if=/dev/zero of=f1_dd bs=1M count=1 1+0 records in 1+0 records out ...

  4. 计算机系统导论第九章,计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新)...

    计算机系统导论 -- 读书笔记 -- 第三章 程序的机器级表示 (持续更新) 第三章 程序的机器级表示 3.1 历史观点 3.2 程序编码 1. 命令行 (1)编译 Linux> gcc -Og ...

  5. java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略

    java虚拟机读书笔记 第三章 垃圾收集器和内存分配策略 GC需要完成的三件事情:哪些内存需要回收.什么时候回收.如何回收 垃圾回收器在对堆进行回收前,首先要确定那些对象存活,哪些对象已经死去,判断的 ...

  6. Android群英传神兵利器读书笔记——第三章:Android Studio奇技淫巧

    Android群英传神兵利器读书笔记--第三章:Android Studio奇技淫巧 这篇文章篇幅较长,可以使用版权声明下面的目录,找到感兴趣的进行阅读 目录 3.1 Android Studio使用 ...

  7. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第三章 程序的机器级表示

    本章主要介绍了计算机中的机器代码--汇编语言.当我们使用高级语言(C.Java等)编程时,代码会屏蔽机器级的细节,我们无法了解到机器级的代码实现.既然有了高级语言,我们为什么还需要学习汇编语言呢?学习 ...

  8. python第三章上机实践_《机器学习Python实践》读书笔记-第三章

    <机器学习Python实践>,第三章,第一个机器学习项目 以往目录:橘猫吃不胖:<机器学习Python实践>读书笔记-第一章​zhuanlan.zhihu.com 书中介绍了一 ...

  9. 《php开发典型模块大全》读书笔记 第三章 mysql数据库基础

    第三章  mysql基础 show columns  from table describe table alter table 修改表 rename   table   t1  to   t2 整型 ...

  10. 《Linux内核设计与实现》读书笔记 第三章 进程管理

    第三章进程管理 进程是Unix操作系统抽象概念中最基本的一种.我们拥有操作系统就是为了运行用户程序,因此,进程管理就是所有操作系统的心脏所在. 3.1进程 概念: 进程:处于执行期的程序.但不仅局限于 ...

最新文章

  1. 30个精美的模板,贺卡,图形圣诞素材
  2. Html5 绘制旋转的太极图
  3. highstock 只显示所有 不显示 月_小米34寸曲面显示器深度体验 办公体验极佳 但是还有个大弱点...
  4. jQuery中排除指定元素,同时选择剩下的所有元素
  5. java.io.eof_java.io.IOException: java.io.EOFException: Unexpected end of input stream错误
  6. android 获取弹窗的值,从弹出窗口调用的Activity 返回一个值_popupwindow_开发99编程知识库...
  7. iview-admin框架运行步骤
  8. emailjava中怎么校验_Java使用注解实现参数统一校验功能
  9. Nexus修改admin密码及其添加用户
  10. http://ju.outofmemory.cn/entry/307891---------TICK
  11. BM3D图像去噪算法原理及代码详解
  12. abaqus与python后处理_abaqus用Python批量后处理教程!如何从abaqus导出python
  13. 微信Java SDK开发文档
  14. 局域网唤醒(Wake On LAN)+树莓派实现远程设备唤醒
  15. 10个在工作中常用的表格函数
  16. 『论文笔记』目标追踪结合相关滤波器资料收集+机器学习基础知识补充!
  17. 02 python:赋值符;运算符;字符串操作
  18. 之前用Delphi随手写的软键盘SoftKeyBoard
  19. [JLOI2008]将军
  20. 华为消费者云的ServiceComb 微服务之旅

热门文章

  1. python的sorted函数和operator.itemgetter函数
  2. 网络和新媒体能申请计算机硕士吗,网络与新媒体专业可以报考公务员吗
  3. 算法案例之有效字母异位词
  4. C语言字符串函数(strcpy,strlen,strcat,stsstr,strchr,strcmp,memcpy,memmove)
  5. Vue+SpringBoot的微信登录
  6. 95后频频离职,是员工本人问题?
  7. Android View框架总结(七)View事件分发机制
  8. 华为鸿蒙ota真机测试,华为鸿蒙OS 2.0测试版继续推进:新增机型一览
  9. mysql 删除foreign key_MySQL-Foreign Key
  10. 接收xml参数_如何解决SpringMVC接收到的请求参数为乱码的问题