第三章 共享程序集和强命名程序集
2015-02-13 17:25
225 查看
1. 概述
本章的重点是如何创建可由多个应用程序访问的程序集。
2. 名词解释
① 公钥标记:从公钥派生的一个小的哈希值。
3. 主要内容
3.1 两种程序集,两种部署
CLR支持两种程序集:弱命名程序集 和 强命名程序集。
一个程序集可以采取两种方式来部署:私有 或 全局。
弱命名程序集只能私有部署,强命名程序集两种部署皆可。
3.2 为程序集分配强名称
强命名程序集具有四个重要组成部分:
① 一个文件名 ② 一个版本号 ③ 一个语言文化标识 ④ 一个公钥(一般用 公钥标记)。
用SN.exe来获取密钥。
3.3 全局程序集缓存(Global Assembly Cache, GAC)
一般用 GACUtil.exe来将一个强命名程序集安装到GAC中。
3.4 在生成的程序集中引用一个强命名程序集
查找顺序:
① 工作目录。 ② 包含CSC本身的目录。 ③ 使用/lib指定的任何目录。 ④ 使用LIB环境变量指定的任何目录。
3.5 强命名程序集如何防篡改
用私钥签名,可保证程序集是由对应公钥的持有者生成的,安装到GAC时,系统对包含清单的那个文件的内容进行哈希处理,并将结果与PE文件中嵌入的RSA数字签名进行比较。如果两个值完全一致,表明文件的内容未被篡改。
3.6 延迟签名
延迟签名允许只有公钥来生成一个程序集,暂时不用私钥。用于在开发测试阶段使用。更好的保护私钥不外泄。
3.7 私有部署强命名程序集
3.8 “运行时”如何解析类型引用
3.9 高级管理配置
4. 总结
强命名程序集是非常推荐的方式。可能也是以后必须使用的方式。
本章的重点是如何创建可由多个应用程序访问的程序集。
2. 名词解释
① 公钥标记:从公钥派生的一个小的哈希值。
3. 主要内容
3.1 两种程序集,两种部署
CLR支持两种程序集:弱命名程序集 和 强命名程序集。
一个程序集可以采取两种方式来部署:私有 或 全局。
弱命名程序集只能私有部署,强命名程序集两种部署皆可。
3.2 为程序集分配强名称
强命名程序集具有四个重要组成部分:
① 一个文件名 ② 一个版本号 ③ 一个语言文化标识 ④ 一个公钥(一般用 公钥标记)。
用SN.exe来获取密钥。
3.3 全局程序集缓存(Global Assembly Cache, GAC)
一般用 GACUtil.exe来将一个强命名程序集安装到GAC中。
3.4 在生成的程序集中引用一个强命名程序集
查找顺序:
① 工作目录。 ② 包含CSC本身的目录。 ③ 使用/lib指定的任何目录。 ④ 使用LIB环境变量指定的任何目录。
3.5 强命名程序集如何防篡改
用私钥签名,可保证程序集是由对应公钥的持有者生成的,安装到GAC时,系统对包含清单的那个文件的内容进行哈希处理,并将结果与PE文件中嵌入的RSA数字签名进行比较。如果两个值完全一致,表明文件的内容未被篡改。
3.6 延迟签名
延迟签名允许只有公钥来生成一个程序集,暂时不用私钥。用于在开发测试阶段使用。更好的保护私钥不外泄。
3.7 私有部署强命名程序集
3.8 “运行时”如何解析类型引用
3.9 高级管理配置
4. 总结
强命名程序集是非常推荐的方式。可能也是以后必须使用的方式。
相关文章推荐
- 第三章 共享程序集和强命名程序集
- 第三章:共享程序集和强命名程序集
- 第三章 共享程序集和强命名程序集
- CLR via c#--共享程序集和强命名程序集
- 共享程序集和强命名程序集
- Chapter3 共享程序集和强命名程序集
- CLR读书笔记--第三章 共享程序集和强命名程序集
- 学习 第三章CLR共享程序集和强命名程序集
- 第一部分 CLR基础:第3章 共享程序集和强命名程序集
- 第3章 共享程序集和强命名程序集
- 第三章 共享程序集和强命名程序集
- 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接
- CLR笔记:3.共享程序集合强命名程序集
- 程序函数和变量的命名
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连
- c#程序控件命名
- 关于强命名程序集
- 变量命名的规范及程序功能思考
- 在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, erro
- 在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接)