深刻领悟.NET2.0中强名称方案

深刻领悟.NET2.0中强名称方案

如果您的主程序集使用强名称,则必须使用与主程序集相同的私钥对附属程序集进行签名。如果在主程序集和附属程序集之间公钥/私钥对不匹配,将不加载您的资源。

使用支持创建强名称(如 Visual Studio 2005)的开发环境
    1、 开发环境或工具使用开发人员私钥对包含程序集清单的文件哈希签名。该数字签名存储在包含程序集 A 的清单的可移植可执行 (PE) 文件中。
    2、程序集 B 是程序集 A 的使用者。程序集 B 的清单的引用部分包括代表程序集 A 公钥的标记。标记是完整公钥的一部分,并且这种标记(而不是密钥本身)可用于节省空间。
    3、公共语言运行库在程序集放在全局程序集缓存时验证强名称签名。当运行时强名称进行绑定时,公共语言运行库会将存储在程序集 B 的清单中的密钥与用于为程序集 A 生成强名称的密钥进行比较。如果 .NET Framework 安全检查通过并且绑定成功,则程序集 B 可保证程序集 A 的位未被篡改,而这些位实际来自程序集 A 的开发人员。

    在框架性平台使用强名称签名后,后续的平台插件必须使用相同的key.snk进行强名称签名才能在该平台下使用。这样避免了未经授权的插件使用和修改,一定程度上保护了版权。

你可能感兴趣的:(.net,平台,语言,存储,框架,工具)