当前位置: 首页 > news >正文

39、程序开发中的延迟签名与异常处理

程序开发中的延迟签名与异常处理

1. 延迟签名

在程序开发中,公司需要谨慎保管其公钥/私钥对中的私钥。若不可信人员获取私钥,他们可能会伪装成公司发布代码。因此,公司不会随意开放包含公钥/私钥对的文件访问权限。在大型公司里,程序集的最终强命名通常在开发流程的最后阶段,由有权访问密钥对的特殊团队完成。

然而,这在开发和测试过程中会引发一些问题:
- 公钥是程序集标识的四个组成部分之一,在提供公钥之前,无法设置程序集的标识。
- 弱命名的程序集不能部署到全局程序集缓存(GAC)。但开发人员和测试人员需要能够以发布时的方式编译和测试代码,包括其在GAC中的标识和位置。

为解决这些问题,出现了一种修改后的强命名方式,即延迟签名(也称为部分签名)。这种方式既能克服上述问题,又不会公开私钥。在延迟签名中,编译器仅使用公钥/私钥对中的公钥,将公钥放入清单以完善程序集的标识,同时使用一块0来为数字签名预留空间。

创建延迟签名程序集需完成以下两步:
1. 创建仅包含公钥的密钥文件副本,而非公钥/私钥对。
2. 在源代码的程序集作用域中添加一个名为DelaySignAttribute的额外属性,并将其值设置为true

若尝试将延迟签名的程序集部署到GAC,CLR不会允许,因为它不是强命名的。要在特定机器上部署,需从Visual Studio命令提示符发出以下命令,以禁用该机器上GAC对该程序集的签名验证,并允许将其安装到GAC中:

sn –vr MyAssembly.
http://www.jsqmd.com/news/137641/

相关文章:

  • Dify镜像快速部署:如何用可视化AI平台降低大模型应用开发门槛
  • 毕业论文渡劫实录:靠Paperii(查下清AI)脱发减半,答辩还拿了良好!
  • Mac触控板在Windows系统下的完美解决方案
  • Universal Split Screen:一台电脑实现多人游戏的终极解决方案
  • 利用downr1n工具实现iOS设备系统降级的技术指南
  • X-AnyLabeling终极指南:2025年最实用的AI自动标注工具完全教程
  • 40、C 预处理器指令与反射和特性详解
  • 22、资源管理:企业成功的关键要素
  • SVGcode:零基础也能轻松掌握的位图转矢量神器
  • 23、ISO 9000 体系下的人员能力管理与发展
  • SVGcode终极指南:快速将图片转换为矢量SVG的秘诀
  • 终极异构系统硬件适配指南:5大核心技术解密
  • 24、资源管理:提升组织效能的关键要素
  • OpenMS质谱数据分析实战:从入门到精通的完整技巧指南
  • Realtek 8192FU Linux无线网卡驱动完整教程:从零到精通
  • Open-Sora实战手册:从零开始打造你的AI视频工坊
  • PhotoGIMP:专业级Photoshop替代方案的无缝切换指南
  • PhotoGIMP完整指南:免费开源的Photoshop最佳替代方案
  • Path of Building终极指南:精准角色构建与技能计算完整解决方案
  • X-AnyLabeling终极指南:从零开始掌握AI智能标注
  • Dify销售话术训练机器人企业培训应用
  • Blender LDraw插件:开启你的乐高3D建模奇妙之旅 [特殊字符]
  • 25、产品实现:从规划到交付的全流程解析
  • Turbo流程引擎终极指南:从入门到精通5大核心功能
  • Qobuz音乐下载终极指南:从零到精通的完整教程
  • Dify歌词创作助手音乐人反馈汇总
  • 27、产品实现与管理:从客户沟通到设计控制的全面指南
  • 3分钟快速上手:PyGoogleNews让Google新闻数据获取变得简单高效
  • Flow Launcher完全攻略:从入门到精通的效率革命
  • 如何用5个实战场景快速掌握大疆云API开发