博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CLR读书笔记--第三章 共享程序集和强命名程序集
阅读量:7122 次
发布时间:2019-06-28

本文共 1024 字,大约阅读时间需要 3 分钟。

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

你可能感兴趣的文章
Spring中的统一异常处理方式
查看>>
wemall 2.0 beta 公测版
查看>>
Mac别名以及自定义命令
查看>>
UIButton扩大响应区域
查看>>
scp详解
查看>>
SpringMVC的请求
查看>>
Hibernate学习笔记第一天 带Hibernate4架包
查看>>
hibernate一些方法的运用
查看>>
sublimetext编译Lua的配置
查看>>
【日积月累】C/C++可变参数函数的实现
查看>>
webSocket实现扫码登录
查看>>
JDBC的介绍和数据库的连接
查看>>
Linux下用NetHogs监控各个进程流量
查看>>
RAISE_APPLICATION_ERROR未能阻止用户登录DB
查看>>
计算机图形软件---坐标表示
查看>>
统计嵌套数组中给定值的重要性 Employee Importance
查看>>
Redis Desktop Manager for mac
查看>>
redis_简单秒杀
查看>>
Oracle优化查询改写(第三章-操作多个表)
查看>>
注解、类加载器、代理
查看>>